当 DNS 为我提供多个 IP 地址之一时,如何验证特定计算机的证书?

当 DNS 为我提供多个 IP 地址之一时,如何验证特定计算机的证书?

我有一个使用 Apache 的云设置,包含 6 台前端计算机。我安装了新的 SSL 证书。现在我想验证所有机器是否都有证书。

问题是,如果我只使用https://www.example.com/随机分配的 IP 地址,我将能够验证其中一台计算机。 DNS 以简单的循环形式返回 6 个 IP 地址之一。

我知道如何使用该/etc/hosts文件在我的计算机上强制使用 IP 地址,但我希望有一种更简单的方法来做到这一点。喜欢curl在域名中使用和指定 IP 地址吗?

我更喜欢将其作为命令行(,,wget... ),这样我就可以编写脚本并以自动方式验证证书的日期,并确保所有计算机都提供正确的证书。该命令应该下载证书,以便可以在我的客户端计算机上进行检查。curlopen_ssl

答案1

您可以为相关站点提供一个明确的 IP 地址以进行卷曲,即

$ curl --resolve example.com:443:192.0.2.4 https://example.com

您还可以openssl s_client与 IP 一起使用并为 SNI 提供显式主机名:

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

相关内容