2023/08/20

httpd (Apache2)が起動しなくなった為、オボエガキ

今日、急に社内のローカルサーバの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を有効にして、自前のサーバ証明書の作成を行うこととする。


これ、通常稼働させていて署名切れた後に、何かの拍子にサーバを再起動させた際は
動かなくなるから焦る可能性が非常に高い。