証明書管理サービスを使用すると、Apacheサーバーに証明書をダウンロードしてインストールできます。 このように、ApacheサーバーはHTTPS経由でアクセスできます。
このトピックでは、ApacheサーバーにSSL証明書をインストールする方法について説明します。
始める前に
- 証明書が発行され、でダウンロードされます。 詳細については、「証明書をコンピューターにダウンロードする」をご参照ください。
- Apacheサーバーのポート443が有効になっています。 ポート443は、HTTPSサービスのデフォルトポートです。
- mod_ssl.soモジュールはApacheサーバーにインストールされています。 このモジュールは、SSL暗号化を有効にするために使用されます。
手順
重要 この例では、証明書名はdomain name、認証局 (CA) 証明書ファイル名はdomain name_public.crt、証明書チェーンファイル名はdomain name_chain.crt、証明書キーファイル名はdomain name.keyです。
- コンピューターにダウンロードしたApacheの証明書パッケージを解凍します。
パッケージから次の3つのファイルが抽出されます。
- CA証明書ファイル: a. crtファイル。
- 証明書チェーンファイル: a. crtファイル。
- 証明書キーファイル: a. キーファイル。
- Apacheのインストールディレクトリにcertという名前のディレクトリを作成します。 次に、取得したCA証明書ファイル、証明書チェーンファイル、証明書キーファイルをcertディレクトリにコピーします。
複数の証明書をインストールするには、Apacheのインストールディレクトリに必要な数の
certディレクトリを作成して、証明書を個別に保存します。
注 証明書の申請時にCSR生成で [手動] を選択した場合、手動で作成した証明書キーファイルをcertディレクトリにコピーし、証明書キーファイルの名前をdomain name.keyに変更します。
- httpd.conf設定ファイルを変更します。
- Apache/conf/ ディレクトリでhttpd.conf設定ファイルを見つけて開きます。
注 Apache/conf/ ディレクトリは、Apacheのデフォルトのインストールディレクトリです。 別のディレクトリを使用する場合は、ファイルが格納されているディレクトリでhttpd.conf設定ファイルを見つける必要があります。
- httpd.conf設定ファイルで次のパラメーターを見つけ、次のコメントに基づいて設定します。
# LoadModule ssl_module modules/mod_ssl.so# 行の先頭にある番号記号 (#) を削除してmod_ssl.soモジュールをロードし、SSLサービスを有効にします。 デフォルトでは、このモジュールはApacheサーバーでは無効になっています。
# conf/extra/httpd-ssl.confを含める# 行の先頭にある番号記号 (#) を削除します。
注 httpd.conf設定ファイルに上記のパラメーターが見つからない場合は、Apacheサーバーにmod_ssl.soモジュールがインストールされているかどうかを確認してください。 yum install -y mod_ssl
コマンドを実行して、mod_ssl.soモジュールをインストールできます。
- httpd.conf設定ファイルを保存して終了します。
- httpd-ssl.conf設定ファイルを変更します。
- Apache/conf/extra/ ディレクトリでhttpd-ssl.conf設定ファイルを見つけて開きます。
注 構成ファイルが格納されるディレクトリは、オペレーティングシステムによって異なります。 http-ssl.conf設定ファイルは、conf.d/ssl.confディレクトリに格納できます。
- httpd-ssl.conf設定ファイルで次のパラメーターを見つけ、次のコメントに基づいて設定します。
<VirtualHost *:443>
ServerName# 証明書を申請するときに追加するドメイン名にServerNameを設定します。
DocumentRoot /data/www/hbappserver/public
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3# サポートされているSSLプロトコルを追加し、安全でないプロトコルを削除します。
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!NULL:!DH:!EDH:!EXP:+ MEDIUM# 暗号スイートを変更します。
SSLHonorCipherOrder on
SSLCertificateFile cert/domain name1_public.crt# domain name1_public.crtをCA証明書ファイルの名前に置き換えます。
SSLCertificateKeyFile cert/domain name1.key# domain name1.keyを証明書キーファイルの名前に置き換えます。
SSLCertificateChainFile cert/domain name1_chain.crt# domain name1_chain.crtを証明書チェーンファイルの名前に置き換えます。 名前が番号記号 (#) で始まる場合は、番号記号を削除します。
</VirtualHost>
# 証明書に複数のドメイン名が含まれている場合は、上記のパラメーターをコピーし、ServerNameを別のドメイン名に設定します。
<VirtualHost *:443>
ServerName# 証明書を申請するときに追加する別のドメイン名にServerNameを設定します。
DocumentRoot /data/www/hbappserver/public
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3# サポートされているSSLプロトコルを追加し、安全でないプロトコルを削除します。
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!NULL:!DH:!EDH:!EXP:+ MEDIUM# 暗号スイートを変更します。
SSLHonorCipherOrder on
SSLCertificateFile cert/domain name2_public.crt# ドメインname2を、証明書の申請時に追加する別のドメイン名に置き換えます。
SSLCertificateKeyFile cert/domain name2.key# ドメインname2を、証明書の申請時に追加する別のドメイン名に置き換えます。
SSLCertificateChainFile cert/domain name2_chain.crt# ドメインname2を、証明書の申請時に追加する別のドメイン名に置き換えます。 名前が番号記号 (#) で始まる場合は、番号記号を削除します。
</VirtualHost>
重要 ブラウザのバージョンがサーバー名表示 (SNI) をサポートしているかどうかを確認します。 ブラウザのバージョンがSNIをサポートしていない場合、マルチドメイン証明書の設定は有効になりません。
- httpd-ssl.conf設定ファイルを保存して終了します。
- オプション:httpd.conf設定ファイルを変更して、HTTPリクエストからHTTPSリクエストへの自動リダイレクトを設定します。
httpd.conf設定ファイルの <VirtualHost *:80> </VirtualHost>
に次のリダイレクションコードを追加します。
RewriteEngine on
RewriteCond %{SERVER_PORT} ! ^ 443 $
RewriteRule ^(.*)$ https:// %{SERVER_NAME}$1 [L,R]
- Apacheサーバーを再起動してSSL設定を有効にします。
Apacheのbinディレクトリで次のコマンドを実行します。
apachectl -k stop
コマンドを実行し、Apacheサービスを停止します。
apachectl -k start
コマンドを実行し、Apacheサービスを開始します。