gpt4 book ai didi

curl - cURL 的证书 cacert.pem 放在哪里?

转载 作者:行者123 更新时间:2023-12-02 16:15:13 24 4
gpt4 key购买 nike

我正在尝试更新 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 文件但我收到一个错误: CA文件: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 在 root 模式下再次使用curl。

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

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

rvm get stable

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

谷歌搜索更多,我发现了一些有用的信息herehere 。第一个引用有一个小错误:当我阅读“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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com