はじめに
apacheのエラーログ(/etc/httpd/logs/error_log
)にこんなメッセージが出てました。
Misconfiguration of certificate's CN and virtual name. The certificate CN has localhost4.localdomain4. We expected <ip-address> as virtual name.
このエラー解決方法を調べました。
環境
Red Hat Enterprise Linux Server release 6.8 (Santiago)
Apache/2.2.15
調査結果
エラーメッセージ内にcertificate's CNと出ているので、ssl関連のエラーでしょう。
というあたりをつけて調べます。
apacheのssl通信用のモジュール
webで調べるとどうやらmod_sslとmod_nssというモジュールがあるようです。
実際に確認。
# httpd -M |grep -e 'nss' -e 'ssl'
httpd: Could not reliably determine the server's fully qualified domain name, using <ip-address> for ServerName
dnssd_module (shared)
nss_module (shared)
ssl_module (shared)
Syntax OK
ありました。
エラー出しているのはどっち?
この記事を参考にmod_nssの方を調べたらビンゴ。
Certificate:
Data:
Subject: "CN=localhost4.localdomain4,O=example.com,C=US"
CNにlocalhost4.localdomain4の記載がありました。
念のためにmod_sslの方も確認
まず証明書ファイルの場所を確認。
# cat /etc/httpd/conf.d/ssl.conf | grep -e 'SSLCertificateFile'
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
証明書の内容を確認
# openssl x509 -text -noout -in /etc/pki/tls/certs/localhost.crt
Certificate:
Signature Algorithm: sha256WithRSAEncryption
Subject: C=--, ST=SomeState, L=SomeCity, O=SomeOrganization, OU=SomeOrganizationalUnit, CN=localhost.localdomain/emailAddress=root@localhost.localdomain
こっちじゃないことを確認。
修正方法
mod_nssの方のエラーということがわかりました。
この修正の方法は検索すれば出てくるので割愛。
mod_nssの方のモジュールをアンインストールするなり、mod_nssの証明書のCNを書き換えて証明書ストアに保存するなりすればエラーが出なくなります。