我正在开发一个程序,我有一个使用自签名证书运行的虚拟开发服务器。我的程序使用curl连接到服务器并提取信息,但需要使用SSL。当我尝试连接时,我收到错误“SSL证书问题,验证CA证书是否正常”。运行firefox时,我可以将证书添加到firefox,但这对curl没有帮助。如何添加curl证书以识别?
curl 7.19.7(x86_64-pc-linux-gnu)libcurl / 7.19.7 OpenSSL / 0.9.8k zlib / 1.2.3.3 libidn / 1.15 协议:tftp ftp telnet dict ldap ldaps http file https ftps 功能:GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
Ubuntu 10.04 Lucid Lynx 64bit
答案 0 :(得分:9)
这是一种对我有用的方法:
首先,从开发域获取CA证书并将其保存到名为“logfile”的文件中。 (假设端口443用于SSL)
openssl s_client -connect xxxxx.com:443 |tee logfile
然后,使用--cacert curl选项使用保存的证书文件。
curl --cacert logfile **THE REST OF YOUR CURL COMMAND**
答案 1 :(得分:7)
我将证书复制到/usr/local/share/ca-certificates/
。
让我引用update-ca-certificates的手册页:
此外,在/ usr / local / share / ca-certificates下面找到的扩展名为.crt的证书也包含在隐式信任中。
答案 2 :(得分:5)
将rootCA.pem添加到“/ usr / share / ca-certificates”目录中。
之后,使用以下命令更新证书:“update-ca-certificates --fresh”命令。
我刚刚做到了,并且工作正常。