无法获取 cURL 或 wget 来验证某些 SSL 证书

use*_*470 4 ssl wget curl ssl-certificate-errors

我注意到我们使用 cURL 的链接检查器越来越频繁地无法验证 SSL 证书。我正在努力追查到底。

例如,https: //www.bgetem.de/ 在我的 Windows 7 机器上的每个浏览器(IE 11、Firefox、Opera、Chrome)上都可以正常打开,但在我的 CentOS 6 和 Ubuntu 16.04 上的 cURL(和 wget)不能验证证书。

这是来自 CentOS (Version curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2) cURL 的详细输出

* About to connect() to www.bgetem.de port 443 (#0)
*   Trying 193.104.3.166... connected
* Connected to www.bgetem.de (193.104.3.166) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* Peer's certificate issuer is not recognized: 'CN=COMODO RSA Domain Validation Secure Server CA,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB'
* NSS error -8179
* Closing connection #0
* Peer certificate cannot be authenticated with known CA certificates
Run Code Online (Sandbox Code Playgroud)

和 Ubuntu(版本curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3):

* found 173 certificates in /etc/ssl/certs/ca-certificates.crt
* found 695 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_GCM_SHA384
* server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
* Closing connection 0
curl: (60) server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Run Code Online (Sandbox Code Playgroud)

知道问题是什么以及如何解决吗?

HBr*_*ijn 6

正如错误消息已经解释的那样:服务器证书无法使用来自 CAfile 的已知 CA 证书进行身份验证:(/etc/pki/tls/certs/ca-bundle.crt因为服务器证书是由系统未知的 CA 颁发的)。

出现此类消息的两个相当常见的原因:

  • 该证书实际上是由未知 CA(例如内部 CA)签署的。
  • 该证书使用来自知名 CA 之一的中间 CA 证书签名,并且远程服务器配置错误,因为它不包含该中间 CA 证书作为响应的 CA 链。

感谢您提供域名:允许我们测试 SSL 服务器并确认:CA 链不完整:

在此处输入图片说明

作为该服务器的管理员,您可以/应该修复链文件以防止认证路径中的那些“额外下载”部分。

如果你不是该服务器的管理员,并希望修复客户端:下载软件,中间证书自己和它添加到本地信任存储

  • 这本身就是一个不同的问题。我认为缺少中间证书是服务器配置错误,您不应该解决客户端问题,但请阅读 [SSL 的工作原理](https://security.stackexchange.com/questions/20803/how-does-ssl-tls -工作) (2认同)