gpt4 book ai didi

curl - 如何通过 HTTPS 测试特定的负载均衡器实例?

转载 作者:行者123 更新时间:2023-12-02 17:16:50 25 4
gpt4 key购买 nike

我有一组 Nginx 服务作为单个地址的负载平衡器,比方说 www.example.com。我希望有一个测试套件可以单独针对这些机器中的每一台,而不是像直接访问地址那样通过 DNS 负载平衡。

当我尝试在 curl 中做类似的事情时,我得到:

 $ curl -H "Host: www.example.com" -v  https://10.10.10.10/                         
* Trying 10.10.10.10...
* Connected to 10.10.10.10 (10.10.10.10) port 443 (#0)
* found 173 certificates in /etc/ssl/certs/ca-certificates.crt
* found 697 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_GCM_SHA384
* server certificate verification OK
* server certificate status verification SKIPPED
* SSL: certificate subject name (www.example.com) does not match target host name '10.10.10.10'
* Closing connection 0
curl: (51) SSL: certificate subject name (www.example.com) does not match target host name '10.10.10.10'

我知道 10.10.10.10 不是同一个名字,但我想让工具相信它是同一个名字(因为我知道它是,这些都是服务于同一个域的负载均衡器).

有没有什么方法可以做到这一点而不涉及处理 DNS 解析?

最佳答案

您遇到的问题是因为您设置的主机 header 已发送到服务器,但 curl 未使用它进行 SSL 验证。

您可以在 curl 输出中看到这一点,注意“连接到 10.10.10.10”:

 $ curl -H "Host: www.example.com" -v  https://10.10.10.10/                         
* Trying 10.10.10.10...
* Connected to 10.10.10.10 (10.10.10.10) port 443 (#0)

您可能正在寻找 --resolve 标志:

--resolve <host:port:address>

Provide a custom address for a specific host and port pair. Using this, you can make the curl requests(s) use a specified address and prevent the otherwise normally resolved address to be used. Consider it a sort of /etc/hosts alternative provided on the command line.

See: curl man page

考虑到这一点,您可能想尝试:

curl -v --resolve www.example.com:443:10.10.10.10 https://www.example.com

这应该在输出中明显表明 curl 现在正在使用主机名,因此允许验证证书主题名称:

$ curl -v --resolve www.example.com:443:10.10.10.10 https://www.example.com
* Added www.example.com:443:10.10.10.10 to DNS cache
* About to connect() to www.example.com port 443 (#0)
* Trying 10.10.10.10...
* Connected to www.example.com (10.10.10.10) port 443 (#0)

关于curl - 如何通过 HTTPS 测试特定的负载均衡器实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45947177/

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