8

我正在尝试在 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

并尝试使用官方文档所说的不同命令,但可以选择使用证书文件:

\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

但是,当我

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 文件放在哪里?

4

1 回答 1

4

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

我犯的第一个错误是 .curlrc 文件中的指令不正确。我们应该像指定“curl”命令的选项一样使用这个文件。所以我删除了“等号”:

cacert /home/user_me/cacert.pem

有了这个,我能够使命令的第一部分工作:

\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-证书——新鲜”命令。

但是在我的情况下,对于第一个解决方案(/usr/share/ca-certificates),当我运行“sudo update-ca-certificates --fresh”命令时出现错误。作为第二种解决方案,我尝试将我的证书放入 /usr/local/share/ca-certificates。但它没有用。

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

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

于 2012-11-05T10:10:28.510 回答