サーバー証明書を用意できたら、それをWebサーバーに配置して利用できるようにします。
ウチのWebサーバーは FreeBSDの portsから導入した Apache 2.2を使用しています。
以前は blog以外に静的Webページもあったので、www.still-laughin.com と blog.still-laughin.com の2つをバーチャルホストで作成しています。
wwwの方は管理用に「オレオレ証明書」を使っています。 そこに blog用の「公的証明書」を追加する形になります。
まず RapidSSLから送られてきたメールからサーバー証明書と中間CA証明書を保存します。 ここではサーバー証明書は blog.crt、中間CA証明書は blog.cer という名称にしました。
それから RapidSSLの「CSR・秘密鍵生成ツール」で生成しダウンロードした秘密鍵(コモンネーム.key)も blog.key という名前に短くしておきます。
用意ができたら上記の3つのファイルを FTPクライアントを使って Webサーバーにアップロードします。
アップロード先は Webサーバーのドキュメントルートから外れたところにします。 ここでは Apacheの設定ファイルのディレクトリ(/usr/local/etc/apache22/)にしてみます。
ところでこの秘密鍵ですが、「CSR・秘密鍵生成ツール」は復号化してくれていないので、このままでは Apacheの起動時にパスフレーズの入力を求められます(実際にはエラーになって起動しない)。
FreeBSDで以下のように復号化します。
# mv blog.key blog.key.back
# openssl rsa -in blog.key.back -out blog.key
復号化が終わったら、Apacheの設定を行います。 自分の場合は、SSL関係は /usr/loal/etc/apache22/extra/httpd-ssl.conf にまとめて記述しています。
NameVirtualHost *:443 ← 追加
SSLCompression off ← 追加
#<VirtualHost _default_:443> ← 既存(www)のブロック先頭をコメントアウト
<VirtualHost *:443> ← 追加
SSLProxyEngine on
SSLEngine on
SSLProtocol +TLSv1.2 ← TLSv1.2しか使わないというタカビーな設定
SSLCipherSuite EECDH+AESGCM:!DSS:!DH ← 最新ブラウザしか相手にしない
DocumentRoot /usr/local/www/
ServerName www.still-laughin.com:443
(中略)
</VirtualHost>
<VirtualHost *:443> ← ここから下を追加
SSLProxyEngine on
SSLEngine on
SSLProtocol +TLSv1.2
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:DH+AES:RSA+AESGCM:RSA+AES:!EXP:!LOW:!aNULL:!eNULL:!ADH:!DSS:!MD5:!PSK:!SRP:!RC4:!3DES ← 比較的最近のブラウザを対象
SSLHonorCipherOrder on
Header add Strict-Transport-Security "max-age=15768000"
DocumentRoot /usr/local/blog
ServerName blog.still-laughin.com:443
SSLCertificateFile /usr/local/etc/apache22/blog.crt
SSLCertificateKeyFile /usr/local/etc/apache22/blog.key
SSLCertificateChainFile /usr/local/etc/apache22/blog.cer
</VirtualHost>
ちなみに参考にしたのは以前にも紹介した『» ApacheのSSL設定を考えた TECHSCORE BLOG』です。 ありがとうございます。
あと『SSL/TLS 暗号設定ガイドライン』はちょっと長すぎるので、『Internet Week 2014 セッションS14 サーバーのSSL/TLS設定のツボ』がオススメです。
HTTP接続(ポート80番)の方の設定は /usr/loal/etc/apache22/extra/httpd-vhost.conf にありますが、こちらは変更していません。 まだ両方でアクセスできる状態です。
設置後、数時間は「情報不足のため、この証明書を検証できません」という表示が出るかもしれませんが異常ではありません。 時間が経てば消えます。