为什么会出现“使用curl的tls握手错误”?

时间:2018-09-03 15:02:37

标签: ssl curl wget

我正在尝试使用curl访问我们内部开发的应用程序的URL,并且在服务器上看到

http: TLS handshake error from 1.2.3.4 remote error: tls: unknown certificate authority.

仅当我们使用curl(在git bash内)或wget击中端点时才会发生。当我们在Windows上使用IE时,效果很好。我什至尝试使用本机SSL库(应该与IE相同)重新安装git bash,但仍然收到相同的错误消息。

甚至尝试下载curl-ca-bundle.crt文件并将其保存到curl二进制文件的同一位置,或者甚至直接告诉它使用带有curl --cacert选项的此文件,但仍然没有乐趣。

我已经比较了IE报告的根证书,以及curl-ca-bundle.crt中的根证书,它们看起来是相同的(它们并不完全相同,但是它们在文本中却是相同的它们在BEGIN和END标记之间,则在屏幕上会稍宽一些,因此,如果有意义的话,使用较少的行)。

希望有人知道下一步该怎么做,因为我们两个人整个下午都在为此扯头发。

wget还会给出错误消息:-

$ wget https://bler.com/admin/user --2018-09-03 15:53:43-- https://bler.com/admin/user Connecting to 132.146.1.142:8090... connected. ERROR: cannot verify oss.dns.networks.bt.com's certificate, issued by 'CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US': Unable to locally verify the issuer's authority. To connect to oss.dns.networks.bt.com insecurely, use '--no-check-certificate'.

我们正在使用本地代理服务器,并且已设置HTTP_PROXY。它一定是在使用代理,因为我们可以看到达到终点。

1 个答案:

答案 0 :(得分:0)

我也有同样的错误。当您在Golang Web服务器上安装唯一证书时,会发生此问题。您必须改为使用证书链。

例如,Letsencrypt提供“ cert.pem”和“ fullchain.pem”。 “ cert.pem”在浏览器中有效,但是curl无法与此文件一起使用(curl:(60)SSL证书问题:无法获取本地发行者证书)。 “ fullchain.pem”在浏览器和curl中正常工作。