Apache 2.x + mod_ssl + OpenSSL
本マニュアルは、サーバ証明書の設定手順をご案内するものです。Apacheのインストールや、コマンドの意味等はご案内しておりませんので、各情報サイトや参考書籍等でご確認ください。
弊社では以下手順にて動作検証をおこなっておりますが、Apacheの動作を保証するものではございませんので、参考情報としてご覧ください。アプリケーションの詳細については付属のドキュメントや関連書籍等でご確認ください。
Apacheはオープンソースのアプリケーションです。脆弱性などの問題がないか、随時情報を確認いただき、万一問題が発見された場合は、該当サービスの停止や、対応パッチがリリースされている場合は速やかに適用するなど、運用には十分ご注意ください。
- 本例では以下環境を前提としています。お客様の環境に合わせて任意に読み替えてご覧ください。
コモンネーム | ssl.kingssl.com |
confディレクトリまでのパス | /etc/httpd/conf/ |
SSL設定用confファイル | /etc/httpd/conf.d/ssl.conf |
証明書の保存ディレクトリ | /etc/httpd/conf/ssl.crt/ |
サーバ証明書ファイル名 | ssl.kingssl.com.crt |
中間証明書ファイル名 | kingcacert.cer |
証明書は管理者様宛てにメールでお送りしています。「◆証明書」をコピーしてサーバに保存してください。
/etc/httpd/conf/ssl.crt/ssl.kingssl.com.crt
中間証明書をサーバに保存します。
※ 中間証明書は管理者様宛てにメールでもお送りしています。「◆中間証明書」をコピーしてください。
/etc/httpd/conf/ssl.crt/kingcacert.cer
Apacheの設定ファイル httpd.confの対象バーチャルホスト内にSSLの設定を行います。
<VirtualHost xxx.xxx.xxx.xxx:443>
DocumentRoot "/var/www/html"
ServerName ssl.kingssl.com
SSLEngine on
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/kingcacert.cer
SSLCertificateFile /etc/httpd/conf/ssl.crt/ssl.kingssl.com.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/ssl.kingssl.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
Apacheのデーモンを再起動し、変更した設定を反映させます。
毎回、起動の際に秘密鍵のパスフレーズの入力が必要になります。
restartでは、正常に読み込まれない場合がありますのでご注意ください。
stop、startコマンドのご利用をお勧めいたします。
# apachectl stop
# apachectl start
※ご利用の環境によっては、コマンド(apachectl startssl、httpd start)が異なる場合がございます。
SSL通信に問題がないか確認してください。
Internet Explorer は、中間証明書がインストールされていない場合でも、自動的にそれを補完するため、エラーがでません。正しくインストールされているか確認するには、opensslコマンドが有効です。
一部のバージョンにおいて、中間証明書が認識されない問題があるようです。認識されない場合はこちらの情報をご参考ください。
※秘密鍵と証明書はペアでバックアップを取ることをお勧めします。パスフレーズが設定されている場合は、こちらもお忘れにならないようご注意ください。
補足
※ [ ] の部分はお客様の環境に合わせて読み替えてください。
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]