Linux
Apache

Amazon Linuxでyum update したらApacheが停止して起動もできなくなった

経緯

OS が Amazon Linux の EC2 インスタンスにログインした時に、yum のアップデートがあると sudo yum update を実行してください 的なメッセージが出ます。

特に理由がなければこれを実行して、yum でインストールされているもののアップデートを実施します。
今回も、これまで通り sudo yum update を実行しました。

アップデート項目には、Linuxカーネル、httpd24など、これまでにもあったような内容だったので、y を押してアップデートを実行、問題なく完了しました。

起こったこと

アップデート後、そのインスタンス上で動いている Webアプリケーションが落ちていました。

やったこと

Apache のステータス確認

$ sudo service httpd status
httpd is stopped

止まっていました。

Apache の起動・再起動

$ sudo service httpd start
Stopping httpd:                                            [FAILED]

起動できません。

$ sudo service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd:                                            [FAILED]

再起動も出来ません。

error_log の確認

$ sudo less /etc/httpd/logs/error_log

すると以下のようなエラーが出ていました。(一部ぼかしてます)

[Tue May 09 22:10:56.170735 2018] [mpm_prefork:notice] [pid 13163] AH00169: caught SIGTERM, shutting down
[Tue May 09 22:10:56.292700 2018] [ssl:emerg] [pid 31332] AH02572: Failed to configure at least one certificate and key for 13.XXX.YYY.ZZ:80
[Tue May 09 22:10:56.292775 2018] [ssl:emerg] [pid 31332] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
[Tue May 09 22:10:56.292780 2018] [ssl:emerg] [pid 31332] AH02312: Fatal error initialising mod_ssl, exiting.

ググってみると、SSL まわりの設定が原因とのこと。

httpd.conf の修正

ここ によると、/etc/httpd/conf/httpd.conf のバーチャルホストの記述に問題があるとのことだったので、それを修正。

修正前

<VirtualHost *:443>
    DocumentRoot /var/www/hogehoge/public
    ServerName hogehoge.com
</VirtualHost>

修正後

<VirtualHost *:443>
    DocumentRoot /var/www/hogehoge/public
    ServerName hogehoge.com

    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/hogehoge.crt
    SSLCertificateKeyFile /etc/pki/tls/private/hogehoge.key
</VirtualHost>

証明書の場所を明示しないとダメだったようです。