SSLサーバ証明書のインストールについて
Apache 2.x + mod_ssl + OpenSSL
弊社では以下手順にて動作検証をおこなっておりますが、Apacheの動作を保証するものではございませんので、参考情報としてご覧ください。アプリケーションの詳細については付属のドキュメントや関連書籍等でご確認ください。ください。
Apacheはオープンソースのアプリケーションです。脆弱性などの問題がないか、随時情報を確認いただき、万一問題が発見された場合は、該当サービスの停止や、対応パッチがリリースされている場合は速やかに適用するなど、運用には十分ご注意ください。
本例では以下環境を前提としています。お客様の環境に合わせて任意に読み替えてご覧ください。
コモンネーム | ssl.alphassl.com |
---|---|
confディレクトリまでのパス | /etc/httpd/conf/ |
SSL設定用confファイル | /etc/httpd/conf.d/ssl.conf |
証明書の保存ディレクトリ | /etc/httpd/conf/ssl.crt/ |
サーバ証明書ファイル名 | ssl.alphassl.com.crt |
中間証明書ファイル名 | alphacacert.cer |
- 1証明書は管理者様宛てにメールでお送りしています。「◆証明書」をコピーしてサーバに保存してください。
- /etc/httpd/conf/ssl.crt/ssl.alphassl.com.crt
- 引き続き同じファイル名をご利用になる場合は、元の証明書ファイルをリネームするなどでバックアップを取ってから、同一ファイル名で保存します。秘密鍵を新たに作成している場合は、新しい秘密鍵が従来のファイル名となるよう設定します。
リネームコマンドの例: mv [旧ファイル名] [新ファイル名] - 2中間証明書をサーバに保存します。
- ※ 中間証明書は管理者様宛てにメールでもお送りしています。「◆中間CA証明書」のデータ(-----BEGIN CERTIFICATE----- から -----END CERTIFICATE----- まで)をコピーしてサーバに保存します。
/etc/httpd/conf/ssl.crt/ssl.alphassl.com.cer - 中間証明書のダウンロード
- 3Apacheの設定ファイル httpd.confの対象バーチャルホスト内にSSLの設定を行います。
<VirtualHost xxx.xxx.xxx.xxx:443>
DocumentRoot "/var/www/html"
ServerName ssl.alphassl.com
SSLEngine on
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/alphacacert.cer
SSLCertificateFile /etc/httpd/conf/ssl.crt/ssl.alphassl.com.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/ssl.alphassl.com.key
</VirtualHost>- 赤字部分は中間証明書の設定です。
ワイルドカード証明書をご利用の場合、VirtualHostの前の行にNameVirtualHostを設定してください。
例: NameVirtualHost xxx.xxx.xxx.xxx:443 - 更新または乗り換えのお客様
ファイル名を変更せずご利用になる場合、confファイルの修正は必要ありません。今回新たなファイル名で設定いただく場合は、ファイル名を修正してください。 - Apache 2.4.8以降をご利用の場合
Apache 2.4.8以降の場合、SSLCertificateChainFileが廃止となりました。
中間CA証明書はサーバ証明書と結合して、SSLCertificateFileに設定してください。
参考情報:http://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcertificatechainfile - 4Apacheのデーモンを再起動し、変更した設定を反映させます。
- ※毎回、起動の際に秘密鍵のパスフレーズの入力が必要になります。restartでは、正常に読み込まれない場合がありますのでご注意ください。
stop、startコマンドのご利用をお勧めいたします。 - # apachectl stop
# apachectl start - ※ご利用の環境によっては、コマンド(apachectl startssl、httpd start)が異なる場合がございます。
- 5SSL/TLS通信に問題がないか確認してください。
- Internet Explorer は、中間証明書がインストールされていない場合でも、自動的にそれを補完するため、エラーがでません。正しくインストールされているか確認するには、opensslコマンドが有効です。
- 一部のバージョンにおいて、中間証明書が認識されない問題があるようです。認識されない場合はこちらの情報をご参考ください。
- 秘密鍵と証明書はペアでバックアップを取ることをお勧めします。
パスフレーズが設定されている場合は、こちらもお忘れにならないようご注意ください。
パスフレーズを忘れた場合、apacheを起動できなくなりますので、新しく秘密鍵、CSRを生成いただき、証明書を再発行する必要があります。
証明書の更新方法は以下の方法があります。
・既存の「証明書」「秘密鍵」のファイル名を引き続き使用する。
・「証明書」「秘密鍵」のファイル名を新たにし、confファイルで新ファイル名を記載する。
いずれの方法を取っていただいても問題ございませんが、前者の場合ファイルを上書きしてしまいますと、復旧できませんのでご注意ください。
また、新証明書が反映するのは、以下手順の最後のApache再起動後となります。
補足
※[ ] の部分はお客様の環境に合わせて読み替えてください。
1.秘密鍵の内容を確認
# openssl rsa -text -noout -in /[FilePath]/[KeyFile]
2.秘密鍵のパスフレーズを解除
(Windows版のApacheでは、秘密鍵のパスフレーズを解除する必要があります。)
# cp /[FilePath]/[KeyFile] /[FilePath]/[KeyFile].org (元ファイルのバックアップ)
# openssl rsa -in /[FilePath]/[KeyFile] -out /[FilePath]/[KeyFile]
3.CSRの内容を確認
# openssl req -text -noout -in /[FilePath]/[CSR]
4.証明書の内容を確認
# openssl x509 -text -noout -in /[FilePath]/[CertFile]