我试图运行以下CURL命令,但我收到SSL证书错误:
curl https://example.com:8443/cli/agentCLI -u username:password
错误:
curl:(60)SSL证书问题,验证CA证书是否正常 . 详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败更多详细信息:http://curl.haxx.se/docs/sslcerts.html curl默认使用证书颁发机构的“捆绑”执行SSL证书验证( CA)公钥(CA证书) . 默认包名为curl-ca-bundle.crt;您可以使用--cacert选项指定备用文件 . 如果此HTTPS服务器使用由捆绑包中表示的CA签名的证书,则证书验证可能由于证书问题而失败(证书可能已过期,或者名称可能与URL中的域名不匹配) . 如果您想关闭curl对证书的验证,请使用-k(或--insecure)选项 .
如何修复此问题以允许SSL URL?
1 回答
如果您在服务器上使用自签名证书,则可以使用:
但请注意,然后它不比使用非SSL连接到服务器更好,因为您的通信将不再安全,使各种人在中间攻击 .
虽然我的建议是从服务器下载
.pem
:,通常在
/etc/ssl/
if you have access to the server中找到,或您可以下载,
使用:
在您的计算机上,只保留文件中的
BEGIN CERTIFICATE
和END CERTIFICATE
之间的部分(包括BEGIN / END行)并将其作为参数提供给--cacert
选项,您也可以下载它 . 然后,每次连接时,您都可以对服务器进行身份验证!在我自己的自签名服务器上进行测试,它运行正常:
一个应该工作的例子:
但可悲的是,事实并非如此 .
我也试图这样做,如here所示:
哪个不起作用,因为该站点(git.cryptolib.org)我来自CACert链,这可以通过使用CACert根证书解决,遵循此FAQ .
一些挖掘资源:
http://curl.haxx.se/docs/sslcerts.html
http://curl.haxx.se/mail/archive-2012-01/0049.html
https://turboflash.wordpress.com/2009/06/23/curl-adding-installing-trusting-new-self-signed-certificate/
http://curl.haxx.se/docs/caextract.html
curl self-signed certificate web service over SSL
但到目前为止还没有确定的答案:-s