CentOS7 Apache2.4 SSL設定のハマりどころ

利用している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つ目のドメイン」を追加設定したところ今回のようなエラーが発生したというお話です。

なんでだろう~。なんでだろう~。(´・ω・`)

参考サイト

スポンサードリンク