CentOS7 Apache2.4 SSL設定のハマりどころ
2019年05月07日 21:31
利用しているVPSをCentOS6からCentOS7に変更した際、Apacheのバージョンが 2.2 から 2.4 に変わってSSL設定で少しばかりハマってしまったので書き残しておきます。
サーバー構成/要件は以下の通り。
- CentOS 7
- Apache 2.4.6 (CentOS7標準)
- Let's Encrypt
- ネームベースバーチャルドメイン
- 2つのドメインにSSLを適用
事象
2.2の "ssl.conf" の設定内容をそのまま2.4にコピー&ペーストする形で移行してみたところ、Apacheが起動しなくなりました。
エラーログは以下の通り(若干端折っております)。
[/etc/httpd/log/error_log] AH01903: Failed to configure CA certificate chain!
原因
どうやらSSLCertificateChainFileディレクティブが原因の様子。
エラーの原因となった "ssl.conf" の該当する設定内容は以下の通り。
証明書等のパスを指定する部分ですね。
SSLCertificateKeyFile /etc/letsencrypt/live/[ドメイン名]/privkey.pem SSLCertificateFile /etc/letsencrypt/live/[ドメイン名]/cert.pem SSLCertificateChainFile /etc/letsencrypt/live/[ドメイン名]/chain.pem
解決
SSLCertificateChainFileディレクティブを削除し、SSLCertificateFileディレクティブに "fullchain.pem" を指定しました。"fullchain.pem" はLet'sEncrypt(certbot)で認証した際に生成されます。
SSLCertificateKeyFile /etc/letsencrypt/live/[ドメイン名]/privkey.pem SSLCertificateFile /etc/letsencrypt/live/[ドメイン名]/fullchain.pem
これで無事Apacheが起動するようになりました。(´・ω・)
ちょっと疑問点
解決したところでちょっと疑問点が出てきました。
Apache 2.4.8 以降?
参考にしたサイトにも書いてあったのですが、SSLCertificateChainFileディレクティブが無くなったのは「2.4.8」以降だそうです。今回検証した環境は「2.4.6」なので一見2.2の設定のままでも動くように思います。
複数のバーチャルドメイン設定が原因?
最初にSSL設定をしたときは「1つのドメイン」のみ。
「1つのドメイン」だと2.2の設定のままでも問題なく動きました。そこで「2つ目のドメイン」を追加設定したところ今回のようなエラーが発生したというお話です。
なんでだろう~。なんでだろう~。(´・ω・`)