gpt4 book ai didi

apache - 将 '-servername' 参数与 openssl s_client 一起使用

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:57 25 4
gpt4 key购买 nike

我正在 Centos6/Apache 上安装新的 SSL 证书,但我的网络浏览器一直在获取旧证书。为了测试我的设置,我使用“openssl s_client”,但我看到基于“-servername”参数的不同结果。在我们看来没有人会使用这个参数,它也没有出现在手册页中,但我看到这里提到了它 OpenSSL: Check SSL Certificate Expiration Date and More .

如果我运行这个命令:

回显 | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -issuer -subject -dates

我获得了正确的证书日期。

(notBefore=2017 年 4 月 20 日 00:00:00 GMT notAfter=2018 年 4 月 20 日 23:59:59 GMT)

但是,如果我将 -servername 参数引入命令

回显 | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -issuer -subject -dates

然后我得到浏览器显示的过期日期 -

(notBefore=2016 年 4 月 20 日 00:00:00 GMT notAfter=2017 年 4 月 20 日 23:59:59 GMT)

谁能解释为什么会这样,因为这一定与我的 SSL 证书在我的浏览器中显示为已过期的原因有关。

谢谢啊

最佳答案

s_client 的 servername 参数被(简要地)记录在这个页面上:

https://www.openssl.org/docs/man1.0.2/man1/s_client.html

从本质上讲,它的工作方式有点像 HTTP 中的“主机” header ,即它会导致请求的域名作为 SSL/TLS 握手的一部分(在 SNI - 服务器名称指示扩展中)传递。然后,服务器可以在一个 IP 后面托管多个域。它将根据请求的域名以适当的证书作为响应。

如果您不请求特定的域名,服务器不知道给您哪个证书,所以您最终会得到一个默认证书。在您的情况下,服务器为您的域提供的证书之一已过期,但默认证书尚未过期。

您需要确保为您的域更新正确的 VirtualHost 条目,例如见:

https://www.digicert.com/ssl-support/apache-multiple-ssl-certificates-using-sni.htm

关于apache - 将 '-servername' 参数与 openssl s_client 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43785703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com