我遇到了一个奇怪的问题,我无法理解。我正尝试从命令行使用 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 的后续版本中,默认启用此选项。