我正在尝试使用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。它一定是在使用代理,因为我们可以看到达到终点。
答案 0 :(得分:0)
我也有同样的错误。当您在Golang Web服务器上安装唯一证书时,会发生此问题。您必须改为使用证书链。
例如,Letsencrypt提供“ cert.pem”和“ fullchain.pem”。 “ cert.pem”在浏览器中有效,但是curl无法与此文件一起使用(curl:(60)SSL证书问题:无法获取本地发行者证书)。 “ fullchain.pem”在浏览器和curl中正常工作。