歴史的な理由もあり学科のweb周りはapacheが元気に稼働しているケースが多い。
とはいえもうapacheの面倒を見るよりはnginxに移行したほうが何かと便利そうなので、現在apacheからnginxへの乗り換えを仕込んでいる。
先週の台風の際に学科システムへのダメージを減らすために、学科システムを一時的に停止させ、クラウドにおいてあるwebの予備サーバーを使うことになった。その時にタイミングを合わせて試しにnginxでwebを構築しようとしたところ、ちょっとSSL周りで詰まったのでそのメモ。
apache側では次のように証明書を指定している。
SSLCertificateChainFile
はいわゆる中間証明書。
SSLCertificateFile /etc/pki/tls/private/ie.u-ryukyu.ac.jp/ie.u-ryukyu.ac.jp.cer SSLCertificateKeyFile /etc/pki/tls/private/ie.u-ryukyu.ac.jp/ie.u-ryukyu.ac.jp.key SSLCertificateChainFile /etc/pki/tls/private/ie.u-ryukyu.ac.jp/nii-odca3sha2ct.cer
ググったところ SSLCertificateChainFile
に対応するnginxの設定項目は無いらしい。
どうもnginxの場合はSSL証明書と中間証明書を連結させたファイルを作る必要がある模様。
ということでこんな感じのコマンドを実行して連結させたpemファイルを生成する。
$cat ie.u-ryukyu.ac.jp.cer nii-odca3sha2ct.cer > ssl.pem
生成したpemファイルをnginxのserverコンテキスト内に指定する。
ssl_certificate /etc/pki/tls/private/ie.u-ryukyu.ac.jp/ssl.pem; ssl_certificate_key /etc/pki/tls/private/ie.u-ryukyu.ac.jp/ie.u-ryukyu.ac.jp.key;
こうするといい感じに動く。証明書周り難しいね...。