使用 OpenSSL 从远程服务器获取 SSL 证书

使用 OpenSSL 从远程服务器获取 SSL 证书

我遇到了一个奇怪的问题,我无法理解。我正尝试从命令行使用 OpenSSL 验证 SSL 证书:

openssl s_client -showcerts -connect server.org:443

但无论我以这种方式调用此服务器上的哪个域,它始终会提供该服务器上第一个(按字母顺序)域的证书,即使该特定域确实有自己的证书。此外,当我在浏览器中调用任何此 URL 时,一切都正常运行

知道我做错了什么吗?

问候,拉德克

答案1

您可能正在使用旧版本的 openssl,即版本 1.0.2 或更低版本。对于这些,您必须明确使用该-servername选项,以便使用 SNI 扩展在 TLS 握手中宣布预期的主机名:

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

在 openssl 的后续版本中,默认启用此选项。

相关内容