我正在尝试在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个月前安装了该服务器,并且一切正常,但是https://rvm.io证书上的内容似乎有所更改
因此,我设法下载了一个新的捆绑包证书(在我的用户目录中为cacert.pem):
wget http://curl.haxx.se/ca/cacert.pem
按照official doc的说明尝试其他命令,但是可以选择使用证书文件:
\curl --cacert ./cacert.pem -L https://get.rvm.io | bash -s stable # update to stable
事情向前发展了一点。不幸的是,后来,rvm在安装过程中再次运行curl,而我又遇到了同样的错误。
因此,我想知道将cacert.pem文件替换为cURL使用的文件在哪里?
我也尝试了其他技术:
创建一个包含cacert =〜/cacert.pem的.curlrc文件
但我得到一个错误:
CAfile:cacert.pem
CApath:/etc/ssl/certs
所以我试图将我的cacert.pem复制到/usr/share/ca-certificates/cacert.org
并在/etc/ssl/certs中建立了一个指向/usr/share/ca-certificates/cacert.org/cacert.pem的符号链接(symbolic link)
但是,当我
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”命令指定选项相同的方式来使用该文件。
所以我删除了“等号”:
cacert /home/user_me/cacert.pem
这样我就可以使命令的第一部分开始工作了:
\curl -L https://get.rvm.io | bash -s stable
bash部分仍然失败,因为rvm在根模式下再次使用curl。
因此,我也将 .curlrc 文件也复制到了/root 文件夹中。
而且有效!
我什至可以调用标准rvm命令:
rvm get stable
但这有点棘手,我希望curl使用我的cacert.pem文件而不使用所有这些.curlrc文件。
进一步搜索,我发现了一些有用的信息here和here。
第一个引用有一个小错误:
当我阅读“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-certificates。但这没有用。
所以我放弃了,保留了两个.curlrc文件。
因此,如果有人能指出我做错了什么,我将不胜感激。
关于curl - cURL的证书cacert.pem放在哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13180083/