バーチャルホストのSSLで手間取ったのでメモ
同じクラウドサーバー(ニフティクラウド)にドメインを2つ乗せて、その2つともにSSLを設定する場合の注意点をまとめてメモしておく
(元々バーチャルホストやってないaaa.comに、運用開始後にbbb.comを乗せるような場合)
ドメインA aaa.com
ドメインB bbb.com
バーチャルホストの設定ファイルは下記のとおり
/etc/httpd/conf.d/aaa_domain.conf
/etc/httpd/conf.d/bbb_domain.conf
ここにSSLのデフォルト設定が書いてあった
下記の内容は、httpsのアクセスに対して、バーチャルホストごとの
設定で当てはまるドメイン名が無い場合に当てられる。
<VirtualHost _default_:443>
~ 色々と
<VirtualHost>
ここにaaa.comに対するssl設定が記述されていた。
これをbbb.com用に書き換えると当然元々のSSLが当たらなくなるので、ダメ。
bbb_domain.confに443に対するSSLの記述をしておけば、そちらが優先して適用される。
ので、設定ファイルにこんな感じに個別の設定を書く。
<VirtualHost 111.171.207.204:443>
~
~
SSLEngine on
SSLCertificateFile /home/bbb/ssl/server.crt
SSLCertificateKeyFile /home/bbb/ssl/server.key
<VirtualHost>
apacheの再起動にはカギのパスフレーズが必要なため、自動でパスフレーズを引き当てるための記述をするのが普通。というかマスト。
このパスフレーズだけは、バーチャルホストごと(SSL証明書ごと)に設定ができない。
ssl.confを開き、下記を確認した。
SSLPassPhraseDialog builtin
SSLPassPhraseDialog exec:/tmp/ssl.sh
今回のケースでは、aaa.comの証明書がパスフレーズ付きでそのパスフレーズを/tmp/ssl.shに記述してある。
この場合に対応するためには、下記のどちらかをやる。
・カギのパスフレーズを無しにする
・カギのパスフレーズを変更して、bbb.comの証明書のパスフレーズをaaa.comと同一にする
パスフレーズの変更、解除は下記URLを参考にしよう