今日、急に社内のローカルサーバのhttpdが停止していた為、 状況を確認したところ、ゾンビ状態だったので、
一度停止し、再起動を図る。
# systemctl start httpd
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
起動失敗となったので、表記のコマンドにて調査
# systemctl status httpd.service
# journalctl -xe
しかしながら、エラーはないため、
# apachectl configtest でsyntaxErrorがないか確認するもエラーなし。
そこで、
/var/log/httpd/error_logを覗くと、起動時にサーバ証明書のことを云っている。
そこで、取り敢えず、
# nano /etc/httpd/conf.d/ssl.conf
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine off
として再起動するも、同じエラーが消えない。
/etc/httpd/conf.d/配下に nss.confがあり、これがエラーを誘発しているようなので、
# nano /etc/httpd/conf.d/nss.conf
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
NSSEngine off
として再起動すると、httpsが立ち上がった。
念のため、証明書を確認してみる。
# certutil -L -d /etc/httpd/alias -n Server-Cert
見てみると、
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 4 (0x4)
Signature Algorithm: PKCS #1 SHA-256 With RSA Encryption
Issuer: "CN=Certificate Shack,O=example.com,C=US"
Validity:
Not Before: Fri Aug 16 03:19:38 2019
Not After : Wed Aug 16 03:19:38 2023
何かのモジュールを入れる際に、mod_nssが一緒に実装されており、
その際に実装された証明書の期限が 昨日だったため、今日から停止した様子。
上記の証明書はデフォルトで
phpinfoを見ると、SSLはOpenSSLを利用しており、そもそも、内部の閉鎖LAN下のサーバのため、mod_sslを積極的に使っていないと思われる。
とりあえず、この状況で稼働させて様子をみる。
支障が出た際は、nss.confかssl.confを有効にして、自前のサーバ証明書の作成を行うこととする。
これ、通常稼働させていて署名切れた後に、何かの拍子にサーバを再起動させた際は
動かなくなるから焦る可能性が非常に高い。