gpt4 book ai didi

CURL 未正确应用 CA 证书文件

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

我无法通过 curl 验证 https://testintegrations.pentanasolutions.com/iTestDriveService 的 SSL 证书.它在我的网络浏览器中运行良好。该证书由 DigiCert 签名,我认为它可能不包含在我的 linux 机器上的 bundle 中。

为了尝试解决这个问题,我从我的 Windows 机器中的 AllCA.pem 文件中提取了 CA 证书(可以在 this gist 中看到,并告诉 curl 使用它。ssl验证仍然失败。然后我尝试通过从浏览器查看证书链并仅使用带有 curl 的证书来提取 DigiCert 根证书。它仍然不验证证书。这是 DigiCert.pem 文件。

-----BEGIN CERTIFICATE-----
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
+OkuE6N36B9K
-----END CERTIFICATE-----

我运行的具体curl命令是:

curl -G https://testintegrations.pentanasolutions.com/iTestDriveService --cacert DigiCert.pem -v

产生这个输出:

* About to connect() to testintegrations.pentanasolutions.com port 443 (#0)
* Trying 203.25.42.36... connected
* Connected to testintegrations.pentanasolutions.com (203.25.42.36) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: /Volumes/C/Users/caleb/Desktop/DigiCert2.cer
CApath: none
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS alert, Server hello (2):
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
* Closing connection #0
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.

不安全选项不是一个选项,所以我需要找到一种方法来正确验证证书。

谁能解释为什么这不起作用?

作为一种合理性检查,我尝试过:

curl -G https://www.google.com.au --cacert DigiCert.pem -v

这行得通,但我觉得这很奇怪,因为 DigiCert.pem 文件不包含签署 google 证书的根证书。这让我怀疑 curl 是否在使用我的 ca 文件。

最佳答案

我已经从与 Firefox 的成功连接中导出了他的证书,但序列号不匹配。另外,我得到以下验证链:

  1. DigiCert 高保证 EV 根 CA(您的 DigiCert.pem)
  2. DigiCert 高保证 CA-3
  3. *.pentasolutions.com

浏览器最初只知道第一个证书,因为它是内置的。因此,该网站不仅需要通过最后一个证书 (#3),还需要通过中间的所有 CA (#2) 才能进行验证。但是该网站只发送#3 并忽略链#2。在这种情况下,只有当浏览器从之前与其他主机的连接中知道这些中间 CA 时,才有可能进行验证。因此,如果我使用新的 Firefox 配置文件,由于缺少中间证书,Firefox 的验证也会失败。

不幸的是,忘记在 Web 服务器中配置证书链是一个非常常见的错误,因为只有当浏览器不记得以前连接的中间证书时,验证才会失败。

关于CURL 未正确应用 CA 证书文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20941808/

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