「Server should be SSL-aware but has no certificate configured」というエラーでApacheが起動しない場合の対処方法
大丈夫。落ち着いてくれ。Stay calm。
検索でこのページにやってきたあなたは、Apacheが立ち上がらなくて相当焦っていると思う。それが本番サーバならなおさらだ。なので、結論から書く。
広告
サーバに元から入っていたサンプルの証明書とか、CNがちゃんと設定されていない自己証明書があるはずだ。
その記述をconfからコメントアウトして、再起動してみてくれ! Now!
ここから詳しい話。
起こった事象
[dacelo@space ~]$ sudo service httpd restart Syntax OK httpd を停止中: [ OK ] httpd を起動中: [失敗]
しまったぁぁやっちまった! しかも本番サーバでやっちまった! 血の気が引いたけど、以下対応により機器を脱することができた。
まずエラーログを見てみる。サーバごとのカスタムログではなくて、/var/log/httpd/ にあるApacheのエラーログだ。
[Fri Oct 17 12:05:41 2019] [notice] caught SIGTERM, shutting down [Fri Oct 17 12:05:42 2019] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Fri Oct 17 12:05:42 2019] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0) Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0)
日本語に訳して考えてみよう。
サーバーはSSL対応である必要がありますが、証明書が設定されていません。(ヒント:SSLCertificatefile)
実施したこと
SNI運用しているサーバなので、どの証明書の事を言っているのかわからないが、ちゃんと設定されていないものがあるのだろう。
サーバデフォルト用に一番上に設定していた記述をコメントアウトさせて再起動。
なんとかなった。
ググると、
ssl_example.jp.confにてSSLEngine onを記載していなかった。
apache2.2.12からSNIに対応したことで、ネームベースVirtualHostを使用する時の設定ファイルの記述が厳密になったらしい。
https://yyuuiikk.org/entry/49
という情報があった。でもこれまで普通に動いていたApacheを再起動したんだけどなあ。若干の謎を残しつつ、解決した。