Curl 在哪里放置卷曲的cacert.pem证书?

Curl 在哪里放置卷曲的cacert.pem证书?,curl,rvm,ssl-certificate,Curl,Rvm,Ssl Certificate,我正在尝试在Debian服务器上更新rvm: rvm get stable 但我有以下错误: curl: (60) SSL certificate problem: unable to get local issuer certificate More details here : http://curl.haxx.se/docs/sslcerts.html 我大约在5个月前安装了这个服务器,一切正常,但证书上似乎发生了变化 因此,我设法下载了一个新的捆绑证书(我的用户目录中的cacert.

我正在尝试在Debian服务器上更新rvm:

rvm get stable
但我有以下错误:

curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here : http://curl.haxx.se/docs/sslcerts.html
我大约在5个月前安装了这个服务器,一切正常,但证书上似乎发生了变化

因此,我设法下载了一个新的捆绑证书(我的用户目录中的cacert.pem):

并尝试另一个命令,如所述,但带有证书文件要使用的选项:

\curl --cacert ./cacert.pem -L https://get.rvm.io | bash -s stable # update to stable
事情有点进展。不幸的是,后来rvm在安装过程中再次运行curl,我再次遇到同样的错误

所以我想知道在哪里放置我的cacert.pem文件来替换cURL使用的文件?

我也尝试了其他技术: 创建包含cacert=~/cacert.pem的.curlrc文件 但我有一个错误: 卡菲尔:cacert.pem CApath:/etc/ssl/certs

因此,我试图在/usr/share/ca certificates/cacert.org中复制我的cacert.pem 并在/etc/ssl/certs中创建了指向/usr/share/ca certificates/cacert.org/cacert.pem的sym链接

但是,当我

rvm get stable
我得到了一个错误:

curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here : http://curl.haxx.se/docs/sslcerts.html
我也在下面尝试过,但没有不同的结果:

sudo update-ca-certificates -f

所以我想知道我的cacert.pem文件放在哪里?

好的,我设法让它工作了,但我对我的解决方案不太满意

我犯的第一个错误是.curlrc文件中的指令不正确。 我们应该以与指定“curl”命令选项相同的方式使用此文件。 因此,我删除了“等号”:

有了这一点,我可以让命令的第一部分工作:

\curl -L https://get.rvm.io | bash -s stable
bash部分仍然失败,因为rvm在root模式下再次使用curl

因此,我将我的.curlrc文件复制到/root文件夹中

成功了! 我甚至可以调用标准rvm命令:

rvm get stable
但这有点棘手,我更希望curl使用cacert.pem文件而不使用所有那些.curlrc文件

通过谷歌搜索,我发现了一些有用的信息。 第一个参考有一个小错误: 当我阅读“sudo update ca certificates--fresh”命令的手册页时,我意识到这家伙把文件放错了地方

您必须将证书放入/usr/share/ca certificates文件夹,而不是/usr/local/share/ca certificates,然后在配置文件/etc/ca certificates.conf中附加一行证书(例如,“my_ca.crt”)。 然后可以运行“sudo update ca certificates--fresh”命令

注意:如果将证书复制到/usr/local/share/ca certificates,则无需再修改/etc/ca-certificates.conf配置文件或运行“sudo update ca certificates--fresh”命令

但是在我的例子中,对于第一个解决方案(/usr/share/ca certificates),我在运行“sudo update ca certificates--fresh”命令时出错。 作为第二种解决方案,我尝试将我的证书放入/usr/local/share/ca证书中,但没有成功

所以我放弃了,我保留了我的两个.curlrc文件


因此,如果有人能指出我做错了什么,我将不胜感激。

当然,但使用证书的目标是确保安全。如果使用“-k”参数,将允许不安全的SSL连接。从手册页摘录:-k,--unsecure(SSL)此选项显式允许curl执行“unsecure”SSL连接和传输。是的,但如果您关心的只是完成它(我认为适用于大多数人),-k是一个选项。
\curl -L https://get.rvm.io | bash -s stable
rvm get stable