Apache Mod_SSLにSSL証明書をインストールする

SSLを使用したApacheの構成

次の手順は、両方の安全なサーバーを(ポート上で)実行することを前提としています。 443)および通常のサーバー(ポート上) 80)。 まず、両方のポートでリッスンするようにサーバーを構成する必要があります。 どちらかを編集 /etc/apache2/ports.conf (Debianで、これはに含まれています apache2.conf)または編集 /etc/apache2/apache2.conf 行を直接含めるには:

聞く80聞く443

次に、編集 /etc/apache2/sites-enabled/yoursite SSL設定を使用します。 VirtualHostsを使用して通常の安全なサーバー設定を分離することは、保守性の点で最も簡単なオプションです。 VirtualHostsセクション外の構成(ServerAdminの設定など)は、両方(およびその他の)VirtualHostに適用されます。

注: Apache 2.4.8から、サーバー証明書と中間証明書チェーンを別々のファイルに保持する方法は廃止されました。 現在の方法と従来の方法の両方について、以下のクリック可能なタブで詳しく説明しています。
Apache 2.4.8以降Apache 2.4.7以下

Apache 2.4.8以降のバージョンでは、サーバー証明書がXNUMXつのファイル内の中間証明書と連結されることを想定しています。 SSL.comからチェーンファイルをダウンロードするには、 Nginx ポータルアカウントのダウンロードリンク:

nginx

または、次のようなコマンドを使用して、既存の証明書と中間ファイルを連結できます。

$ cat /etc/ssl/private/ca-bundle-client.crt >> /etc/ssl/private/yourdomain.crt

次のセクションを構成ファイルに追加します。

#================================================= #SSL /TLS 設定#================================================ = NameVirtualHost *:443 DocumentRoot "/ var / www / yoursite" SSLEngine on SSLCertificateFile /etc/ssl/private/yourdomain.chained.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key

この構成に関するいくつかの注意:

  • SSLEngine サーバーがSSLを使用するように有効にする必要があります。
  • DocumentRoot この仮想ホストのルートディレクトリを設定します。 つまり、安全なコンテンツを通常のコンテンツから完全に分離することができます。
  • SSLCertificateFile サーバー証明書と中間チェーンを含むファイルを配置する場所に設定する必要があります。
  • SSLCertificateKeyFile 秘密鍵ファイルを配置する場所に設定する必要があります。

次のセクションを構成ファイルに追加します。

#================================================= #SSL /TLS 設定#================================================ = NameVirtualHost *:443 DocumentRoot "/ var / www / yoursite" SSLEngine on SSLCertificateFile /etc/ssl/private/yourdomain.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key SSLCertificateChainFile / etc / ssl / private / ca-bundle- client.crt

この構成に関するいくつかの注意:

  • SSLEngine サーバーがSSLを使用するように有効にする必要があります。
  • DocumentRoot この仮想ホストのルートディレクトリを設定します。 つまり、安全なコンテンツを通常のコンテンツから完全に分離することができます。
  • SSLCertificateFile, SSLCertificateChainFile, & SSLCertificateKeyFile 証明書、中間ファイル、秘密鍵ファイルをそれぞれ配置する場所に設定する必要があります。

通常のサーバーをポート80で実行するには、次のセクションを構成ファイルに追加します。

NameVirtualHost *:80 DocumentRoot "/ var / www / yoursite"#ホスト固有のディレクトリ設定、オプションなど#これらのオプションのほとんどは、VirtualHostsセクションの外で設定される可能性があります。

編集した構成ファイルを保存したら、Webサーバーを再起動します。 証明書の生成時にパスフレーズを使用した場合は、チャレンジ時にパスフレーズを入力する必要があります。

テスト

コンテンツがまだない場合は、Webサーバーのルートディレクトリがある場所に基本的なindex.htmlページを作成します。

次に、Webブラウザで https://www.yoursite.com。 SSL接続が開かれ、ページが配信されます。 自己署名証明書を使用している場合、ブラウザはサーバーのIDを確認できないことを警告するアラートをポップアップ表示します。 証明書を表示して受け入れることを選択できます。 外部証明書を使用する場合は、すべて介入なしで実行する必要があります。

また、保護されたコンテンツにhttp://を使用してアクセスできないことも確認してください。 実行しようとすると、エラーメッセージが表示されます。

トラブルシューティング

期待どおりに動作しない場合は、まずサーバーが実際に実行されていることを確認します。 ps -a | grep apache。 それでも何も返されない場合は、再起動して、ターミナルのエラーメッセージを確認してください。

また、キーと証明書ファイルの権限が正しく設定されていること(上記を参照)、およびテストHTMLファイルとその親ディレクトリの権限も確認してください。

次に、ログを確認します。 メインサーバーのログと、上記の構成ファイルで設定したSSLログの両方を確認する必要があります。 何も役に立たない場合は、Apache2設定ファイルのLogLevel値を「debug」に変更し、Apache2を再起動して、もう一度テストしてみてください。 これにより、より多くのログファイルデータが得られるはずです。

ポート80でも通常のWebサーバーを実行している場合は、https://ではなくhttp://を介してテストページをフェッチして、問題がWebサーバーにあるのかSSL接続にあるのかを特定してください。 上記の設定では、Webサーバーのルートディレクトリがhttp://とhttps://で異なるため、同じコンテンツにアクセスできない(またはアクセスできないようにする)ことに注意してください。 ただし、http://ルートディレクトリのテストページが正常に機能し、https://ルートディレクトリのテストページが機能しない場合は、問題を特定するのに役立ちます。

問題がSSL接続である場合、便利なツールは s_client、トラブルシューティング用の診断ツール TLS/ SSL接続。 基本的な使用法は次のとおりです。 /usr/bin/openssl s_client -connect localhost:443。 他にも多数のオプションがあり、ドキュメントを確認できます。 エラーメッセージが表示された場合は、問題の特定に役立ちます。

SSL.comをご利用いただきありがとうございます。 ご不明な点がございましたら、メールでお問い合わせください。 Support@SSL.com電話する 1-877-SSL-SECURE、またはこのページの右下にあるチャットリンクをクリックしてください。

SSL.com のニュースレターを購読する

SSL.comからの新しい記事と更新をお見逃しなく

常に最新情報を入手して安全を確保

SSL.com サイバーセキュリティの世界的リーダーであり、 PKI そしてデジタル証明書。サインアップして、最新の業界ニュース、ヒント、製品のお知らせを受け取ります。 SSL.com.

フィードバックをお待ちしております

アンケートにご協力いただき、最近のご購入についてのご意見をお聞かせください。