我正在尝试向 IP 地址为 xxxx 的服务器发送 cURL 请求。它是健康监测系统的一部分。在服务器上,我在端口 80 和 443 上为 subdomain.example.com 配置了虚拟主机。对于 ssl 证书,我使用的是 *.example.com 通配符证书,我在此服务器上使用它以及其他几台服务器。
当我尝试卷曲到http://x.x.x.x
它时,会得到适当的响应。但是当我卷曲https://x.x.x.x
它时,会出现以下证书错误:
curl:(51)SSL:证书主题名称“*.example.com”与目标主机名“xxxx”不匹配
我知道这是因为证书特定于域名,我正在尝试使用 IP 地址发送请求。但正如我所说,这是我的一个限制(机架空间负载均衡器健康监控)。
有解决办法吗??
您可以像往常一样使用域名,但像这样覆盖解析器:
不过,维护很多这样的映射可能会很尴尬。您可能更愿意忽略证书不匹配:
如果需要,您可以使用
--insecure --verbose
并解析消息以检查证书是否适用于预期的域,但这可能比使用--resolve
我将把它作为一个新的答案,因为它朝着完全不同的方向发展。事实上,它并没有回答提出的问题,但也许是 OP 应该关注的方向。
使用负载均衡器时通常的配置是 SSL 证书根本不在 Web 服务器上,而是将 SSL 移交给负载均衡器。
最终用户向负载均衡器发出 HTTPS 请求。负载平衡器解开 SSL,并通过未加密的 HTTP 将请求转发到 Web 服务器,并带有一个标头,告诉 Web 服务器原始请求已加密。(对于在响应中嵌入 URL 和避免通过 http 提供安全内容很重要)。