ゴマちゃんフロンティア

アザラシが大好きなエンジニアの開発日記です

さくらVPSでSSL証明書の参照先がデフォルトになっていたお話

time 2019/07/14

今朝ブラウザから私のブログを見ると、証明書のプライバシーエラーになっていました。
Chromeで見ると↓のような画面です。「ERR_CERT_COMMON_NAME_INVALID」と表示されています。

そんなこともあり、朝から原因調査と対応に追われたので、備忘として書いておきます。
先に結論を書くと「ssl.confのVirtualHostの設定をコメントアウト」で直りました。

経緯と対処法

SSL証明書のCNがさくらVPSのホスト名 (.vs.sakura.ne.jp) になっており、ドメイン名とCNが異なっている旨のエラーが出ていました。
使用している証明書の情報をコマンドで確認しましたが、特に問題はなさそうでした。
であればhttpdの設定が疑わしいです。

httpdの設定のうち、vhost関連は問題なさそうです。
しかしそれが適用されていないので、Let’s Encryptのvhosts-le-ssl.confが正常に読まれていないか、他の設定が使われているかのどちらかでしょう。
VirtualHostの設定はhttpd -Sコマンドで確認できます。

[root@host httpd]# httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:443                  is a NameVirtualHost
         default server gomafrontier.com (/etc/httpd/conf.d/ssl.conf:76)
         port 443 namevhost gomafrontier.com (/etc/httpd/conf.d/ssl.conf:76)
         port 443 namevhost gomafrontier.com (/etc/httpd/conf.d/vhosts-le-ssl.conf:2)
         port 443 namevhost unityrankingserver.gomafrontier.com (/etc/httpd/conf.d/vhosts-le-ssl.conf:16)
*:80                   is a NameVirtualHost
         default server gomafrontier.com (/etc/httpd/conf.d/vhosts.conf:1)
         port 80 namevhost gomafrontier.com (/etc/httpd/conf.d/vhosts.conf:1)
         port 80 namevhost azarashiquiz.gomafrontier.com (/etc/httpd/conf.d/vhosts.conf:10)
         port 80 namevhost unityrankingserver.gomafrontier.com (/etc/httpd/conf.d/vhosts.conf:19)
Syntax OK

どうもssl.confの設定が優先されているようです。
同ファイルを確認すると、証明書の参照先が/etc/pki/tls/certs/localhost.crtになっていたので、その内容を確認します。
コマンドはopenssl x509 -text -noout -in [.crtファイルのパス]です。

空白の部分はホスト名です。.vs.sakura.ne.jpになっているので、こいつが参照されているで間違いなさそうです。
デフォルト設定を参照してもらっても困るので、ssl.conf<virtualhost>ディレクティブを丸ごとコメントアウトし、httpdを再起動します。
再度httpd -Sで確認しましょう。

[root@host httpd]# httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:443                  is a NameVirtualHost
         default server gomafrontier.com (/etc/httpd/conf.d/vhosts-le-ssl.conf:2)
         port 443 namevhost gomafrontier.com (/etc/httpd/conf.d/vhosts-le-ssl.conf:2)
         port 443 namevhost unityrankingserver.gomafrontier.com (/etc/httpd/conf.d/vhosts-le-ssl.conf:16)
*:80                   is a NameVirtualHost
         default server gomafrontier.com (/etc/httpd/conf.d/vhosts.conf:1)
         port 80 namevhost gomafrontier.com (/etc/httpd/conf.d/vhosts.conf:1)
         port 80 namevhost azarashiquiz.gomafrontier.com (/etc/httpd/conf.d/vhosts.conf:10)
         port 80 namevhost unityrankingserver.gomafrontier.com (/etc/httpd/conf.d/vhosts.conf:19)
Syntax OK

これで正しい証明書が読み込まれました。

Chromeから見ても問題なさそうです。

あとがき

思い当たることと言えば、さくらVPSのDNS逆引き設定を変えたことくらいですね。
それによって今まで参照されていなかったデフォルト設定が優先されてしまったのかもしれません。
はっきりした原因は分からず終いですが、エラーになった理屈は把握できたので、これで様子を見てみます。

コメント

  • 非常に有益な情報、本当に参考になりました
    ありがとうごうございました。

    yossy  2022年2月13日 5:42 PM

down

コメントする