我的 Apache Web 服务器日志遭受可怕的错误:
[ssl:error] AH02032: Hostname www.example.com provided via SNI and
hostname example.com provided via HTTP are different
我需要在我的日志中手动重现错误。所以这就是我要问的。
我该怎么做?
更具体地说,我需要查看我的 Web 服务器升级是否仍然记录这些事件,如果是,请采取措施从我的日志文件中过滤它们。
我知道的很多:我需要在 TLS 握手中发送一个主机名,例如www.example.com
,发送到我的 Web 服务器(SNI 应该由 Web 服务器自动处理)。example.com
然后在 HTTP 标头中发送不同的主机名,例如。
我对 telnet / openssl 等感到满意,但不知道从哪里开始弄清楚命令。
第一次尝试这样做:
我快接近了,但由于某种原因,错误有所不同,并且仅在第一次出现:
$ openssl s_client -crlf -connect www.example.com:443
> GET / HTTP/1.1
> Host: example.com
> [ENTER]
[Sat Mar 05 17:31:35.958118 2022] [ssl:error] [pid 512:tid 139776568080128]
[client 10.0.0.100:37982] AH02032: Hostname www.example.com provided via SNI
and hostname example provided via HTTP have no compatible SSL setup
请注意第二个主机名是example
,即使我输入了example.com
第二次尝试这样做:
$ openssl s_client -crlf -connect www.example.com:443
> GET / HTTP/1.1
> Host: example.com
> [ENTER]
日志文件中没有任何报告,无论是在旧服务器上还是新服务器上。我正在发送与 HTTP 主机名不同的 SNI 主机名(我认为),所以也许 openssl 客户端已自动更正,这是我所期望的?
旗帜
servername
就是区别。阿帕奇 2.4.6:
Apache 2.4.52 不会在日志文件中产生此错误。
另外,
man openssl-s_client
很有帮助。