Dou*_*las 7 curl ssl-certificate rvm
我正在尝试在Debian服务器上更新rvm:
rvm get stable
Run Code Online (Sandbox Code Playgroud)
但是我得到了以下错误:
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here : http://curl.haxx.se/docs/sslcerts.html
Run Code Online (Sandbox Code Playgroud)
我大约5个月前安装了这台服务器,一切正常,但似乎https://rvm.io证书上的内容有所改变
所以我设法下载了一个新的捆绑证书(我的用户目录中的cacert.pem):
wget http://curl.haxx.se/ca/cacert.pem
Run Code Online (Sandbox Code Playgroud)
并且正如官方文档所述尝试不同的命令,但是可以使用证书文件的选项:
\curl --cacert ./cacert.pem -L https://get.rvm.io | bash -s stable # update to stable
Run Code Online (Sandbox Code Playgroud)
事情有点向前发展.不幸的是,rvm在安装过程中再次运行卷曲,我再次遇到同样的错误.
所以我想知道在哪里放置我的cacert.pem文件来替换cURL使用的文件?
我尝试了其他技术:创建一个包含cacert =〜/ cacert.pem的.curlrc文件,但是我收到一个错误:CAfile:cacert.pem CApath:/ etc/ssl/certs
所以我尝试在/usr/share/ca-certificates/cacert.org中复制我的cacert.pem并在/ etc/ssl/certs中创建一个指向/usr/share/ca-certificates/cacert.org/的sym链接cacert.pem
但是,当我
rvm get stable
Run Code Online (Sandbox Code Playgroud)
我收到了错误:
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here : http://curl.haxx.se/docs/sslcerts.html
Run Code Online (Sandbox Code Playgroud)
我也试过这个,但没有不同的结果:
sudo update-ca-certificates -f
Run Code Online (Sandbox Code Playgroud)
所以我想知道在哪里放我的cacert.pem文件?
好的,我设法让它工作,但我对我的解决方案不太满意。
\n\n我犯的第一个错误是 .curlrc 文件中的指令不正确。\n我们应该像为“curl”命令指定选项一样使用此文件。\n所以我删除了“等号”:
\n\ncacert /home/user_me/cacert.pem\n
Run Code Online (Sandbox Code Playgroud)\n\n这样我就可以使命令的第一部分起作用:
\n\n\\curl -L https://get.rvm.io | bash -s stable\n
Run Code Online (Sandbox Code Playgroud)\n\nbash 部分仍然失败,因为 rvm 在根模式下再次使用curl。
\n\n所以我也将.curlrc文件复制到/root中文件夹中。
\n\n它起作用了!\n我什至可以调用标准 rvm 命令:
\n\nrvm get stable\n
Run Code Online (Sandbox Code Playgroud)\n\n但这有点棘手,我更希望curl 使用我的cacert.pem 文件而不使用所有这些.curlrc 文件。
\n\n谷歌搜索更多,我在这里和这里找到了一些有用的信息找到了一些有用的信息。\n第一个参考有一个小错误:\n当我阅读“sudo update-ca-certificates --fresh”命令的手册页时,我意识到这个人正在把他的文件在错误的地方。
\n\n您必须将证书放入/usr/share/ca-certificates文件夹而不是 /usr/local/share/ca-certificates ,然后将证书行附加到配置文件/etc/ca-certificates.conf(例如,\xe2\x80\x9cmy_ca.crt\xe2\x80\x9c)。\n然后您可以运行“sudo update-ca-certificates --fresh”命令。
\n\n注意:如果将证书复制到/usr/local/share/ca-certificates,则无需再修改 /etc/ca-certificates.conf 配置文件,也无需运行“sudo update-ca -certificates --fresh”命令。
\n\n但是就我而言,对于第一个解决方案(/usr/share/ca-certificates),当我运行“sudo update-ca-certificates --fresh”命令时出现错误。\n作为第二个解决方案,我尝试将我的证书放入 /usr/local/share/ca-certificates。但这没有用。
\n\n所以我放弃了,保留了两个 .curlrc 文件。
\n\n因此,如果有人能指出我做错了什么,我将非常感激。
\n