2012-11-01 34 views
7

我试图Debian服务器上更新RVM:将证书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 

我大约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在安装过程中再次运行,我再次遇到同样的错误。

所以我想知道在哪里把我的cacert.pem文件替换cURL使用的一个?

我试图以及其他工艺: 创建包含CACERT =〜/ cacert.pem 一个.curlrc文件,但我得到一个错误: 凭证档案错误:cacert.pem CApath:在/ etc/SSL /证书

所以我试图将我的cacert.pem复制到/usr/share/ca-certificates/cacert.org 中,并在/ etc/ssl/certs中创建了一个指向/ usr/share/ca-certificates/cacert的sym链接.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

好吧,我设法使它的工作,但我不是很满意我的解决方案。

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

cacert /home/user_me/cacert.pem 

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

\curl -L https://get.rvm.io | bash -s stable 

bash的部分仍然失败,因为RVM使用在根模式下再次卷曲。

所以我复制了我的。curlrc文件以及/根文件夹。

它的工作! 我甚至可以调用标准RVM命令:

rvm get stable 

但是,这是一个有点棘手,我宁愿卷曲用我的cacert.pem文件,而无需所有这些.curlrc文件。

谷歌搜索更多,我发现一些有用的信息herehere。 第一次参考有一个小错误: 当我看到“sudo update-ca-certificates --fresh”命令的手册页时,我意识到这个人把他的文件放在错误的地方。

你必须把你的证书到在/ usr /共享/ CA证书文件夹,而不是在/ usr/local/share下/ CA证书,然后为您的证书一行追加到配置文件的/ etc /ca-certificates.conf(例如“my_ca.crt”)。 然后你可以运行你的“sudo update-ca-certificates --fresh”命令。

注意:如果您的证书复制到在/ usr/local/share下/ CA证书代替,那么你就不再需要修改/etc/ca-certificates.conf配置文件,也不运行“sudo update-ca-certificates --fresh”命令。

在我的情况

但是,对于第一个解决方案(在/ usr /共享/ CA证书),当我跑的“sudo的更新CA证书--fresh”命令,我得到了一个错误。 作为第二种解决方案,我试图将我的证书放入/ usr/local/share/ca-certificates。但它没有奏效。

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

所以,如果有人能指出我在做什么错了,我将非常感激。

+1

另请参见:'curl -k -L https://get.rvm.io | bash -s stable' –

+1

当然,但使用证书时的目标是使事情安全。如果您使用'-k'参数。您将允许不安全的SSL连接。从手册页摘录:** - k,--insecure(SSL)此选项明确允许curl执行“不安全”SSL连接和传输。** – Douglas

+1

是的,但是如果您关心的只是完成它(适用于大多数人,我认为),-k是一个选项。 –