通过 OpenSSL cli 访问时,Plesk 提供错误的 SSL 证书,但在浏览器中却正确无误

通过 OpenSSL cli 访问时,Plesk 提供错误的 SSL 证书,但在浏览器中却正确无误

我已在多个网站上设置了 Plesk。在浏览器中访问时,Plesk 可以正常提供正确的 SSl 证书。

但是当我通过 openssl 访问它时

openssl s_client -connect mysite.com:443

我收到了另一个网站的 SSL 证书。它是服务器上的另一个网站,但不是该域名的网站。

这是我使用该 openssl 调用时遇到的错误。

CONNECTED(00000003)
depth=0 /OU=Domain Control Validated/CN=*.example.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.example.com
verify error:num=27:certificate not trusted
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.example.com
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
0 s:/OU=Domain Control Validated/CN=*.example.com
i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certificates.go
daddy.com/repository/CN=Go Daddy Secure Certification Authority/serialNumber=
---

答案1

当您有多个站点使用单独的 SSL 证书时,有一个名为 SNI 的 SSL 扩展允许客户端和服务器协商应验证哪个主机名。

为了让 s_client 使用 SNI,您需要在命令行中使用选项指定它 -servername

例子:

openssl s_client -connect example.com:443 -servername www.example.com

相关内容