如果证书无效,为什么curl -k -I https://host.example.com 不返回响应标头?

如果证书无效,为什么curl -k -I https://host.example.com 不返回响应标头?

有谁知道为什么带有 -k (--insecure)选项和 -I 显示标题的curl仍然显示html响应而不是预期的标题?

按预期工作:

$ curl -I https://validsslcert.example.com
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
...

$ curl -k -I https://validsslcert.example.com
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
...

$ curl -k https://invalidcert.example.com
<br />
...

未按预期工作:

$ curl -k -I https://invalidcert.example.com
<br />
<br />
<br />
<center><h2>Maintenance</h2></center>

我在这里做什么并不重要,但我正在测试设置哪些标头来识别 haproxy 上不同的后端 acl 逻辑。

我希望curl允许我建立不安全的连接(无效的证书)并仍然返回标头?

答案1

对我来说没有任何问题。失败,没有-k

$ curl -I https://self-signed.badssl.com/
curl: (60) SSL certificate problem: self signed certificate

但由于以下原因成功-k并显示了标题-I

$ curl -k -I https://self-signed.badssl.com/
HTTP/1.1 200 OK
Server: nginx/1.10.3 (Ubuntu)
Date: Mon, 11 Jan 2021 15:16:31 GMT
Content-Type: text/html
Content-Length: 502
Last-Modified: Tue, 24 Mar 2020 00:15:54 GMT
Connection: keep-alive
ETag: "5e79513a-1f6"
Cache-Control: no-store
Accept-Ranges: bytes

也许有问题的服务器只是损坏并且不发送任何 HTTP 标头(即 HTTP/0.9 样式响应)?

相关内容