0

我已经从 godaddy 购买了一个域的 TLS 证书(比如 somebeta.com - 实际不同)。DNS 指向我操作的 AWS EC2 Linux 服务器。此 EC2 上的 httpd Web 服务器为 REST API 请求提供服务。

我已经在指向 beta.com 的 AWS EC2 服务器上安装了证书,并且在httpd.confssl.conf中没有指定 ServerName 指令。一切都很好,https://somebeta.com工作,出现绿色,一切都很好。

现在我通过将alpha.something.beta指向另一个 EC2 实例,在 godaddy DNS 上创建一个新的子域路由。当我在另一台 EC2 服务器上安装此证书时,我在 ssl_error_logs 中得到以下信息:

ip-<Some IP>.ap-south-1.compute.internal:443:0 server certificate does NOT include an ID which matches the server name

我查看了SO,发现机器的主机名应该与证书中的CN匹配。如果没有,那么 SSL/TLS 将失败(我相信 mod_ssl 会检查并失败)。

我的问题是,我没有设置实际 somebeta.com EC2 服务器的主机名,但 SSL/TLS 仍然工作得很好。情况如何?mod_ssl 是否做了一些智能来确定 localhost 实际上指向 somebeta.com(通过执行 DNS/etc),这就是它起作用的原因?

请不要过早结束这个问题,我完全了解 SSL/TLS 的工作原理,我只需要知道 httpd 中的 mod_ssl 是如何验证的。ServerName 指令的缺失或存在总是重要还是有时重要?

4

0 回答 0