macos-如何修复curl:(60)SSL证书:无效的证书链

我在Mac OSX 10.9(Mavericks)上运行curl https://npmjs.org/install.sh | sh时遇到以下错误:

install npm@latest
curl: (60) SSL certificate problem: Invalid certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html

我该如何解决?

leafiy asked 2020-08-09T04:58:08Z
8个解决方案
66 votes

在Mac OS X 10.9(Mavericks)上使用Safari浏览器(不是Chrome,Firefox或Opera),请访问[https://registry.npmjs.org]

Screenshot of Safari showing certificate error

单击显示证书按钮,然后选中标记为始终信任的复选框。 然后单击继续,并根据需要输入密码。

Always trust checkbox

现在,Curl应该可以正确使用该URL。

Lewis Buckley answered 2020-08-09T04:58:23Z
32 votes

首先,您应该警惕引发SSL错误的网址。 话虽如此,您可以使用以下命令抑制curl中的证书错误

curl -k https://insecure.url/content-i-really-really-trust
Steen answered 2020-08-09T04:58:43Z
18 votes

问题是到期的中间证书不再使用,必须删除。 这是Digicert的博客文章,解释了该问题及其解决方法。

[HTTPS://blog.dig ice RT.com/expired-intermediate-certificate/]

我看到了Github无法在Safari和命令行中通过git pull通过SSL加载的问题。 一旦我删除了旧的过期证书,一切都很好。

grempe answered 2020-08-09T04:59:13Z
8 votes

更新到OS X 10.9.2之后,我开始遇到Homebrew,Textmate,RVM和Github无效的SSL证书问题。

当我启动brew update时,出现以下错误:

fatal: unable to access 'https://github.com/Homebrew/homebrew/': SSL certificate problem: Invalid certificate chain
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

通过禁用Git中的SSL验证,我能够缓解某些问题。 从控制台(又称外壳或终端):

git config --global http.sslVerify false

我很推荐这样做,因为它违反了SSL的目的,但这是我发现的唯一可行的建议。

我尝试了rvm osx-ssl-certs update all,内容为Already are up to date.

在Safari中,我访问了[https://github.com]并尝试手动设置证书,但是Safari并未提供信任证书的选项。

最终,我不得不重置Safari(Safari->重置Safari ...菜单)。 然后,随后访问github.com并选择证书,然后“始终信任”这感觉很不对,并删除了历史记录和存储的密码,但是它解决了我的SSL验证问题。 酸甜苦辣的胜利。

scarver2 answered 2020-08-09T05:00:00Z
8 votes

注意:此答案显然违背了SSL的目的,应尽量不要使用。

对于那些在脚本下载过程中遇到问题的脚本,这些脚本可以下载脚本并需要快速修复,请创建一个名为.curlrc的文件

与内容

--insecure

默认情况下,这将导致curl忽略SSL证书问题。

确保完成后删除文件。

更新

12天后,我收到关于此答案的反对的通知,这使我走了“嗯,我是否按照我自己的建议记得删除.curlrc?”,但发现我没有。 因此,这确实突显了遵循此方法使卷发不安全的容易程度。

ChristopherJ answered 2020-08-09T05:00:47Z
3 votes

造成此问题的另一个原因可能是您的KeyChain中的键重复。 我在两台Mac电脑上都看到了这个问题,其中有重复的“ DigiCert高保证EV根CA”。 一个在登录钥匙串中,另一个在系统中。 从登录钥匙串中删除证书解决了该问题。

这影响了Safari浏览器以及命令行上的git。

Matt Connolly answered 2020-08-09T05:01:12Z
1 votes

在优胜美地(10.10.1)上安装了最新的命令行工具更新(6.1)之后,我开始看到此错误。 在这种情况下,重新启动系统可修复错误(自更新以来,我尚未重新启动)。

提及这一点,以防遇到相同问题的任何人都遇到此页面,就像我一样。

zzamboni answered 2020-08-09T05:01:37Z
0 votes

在尝试了上述所有解决方案以消除“卷曲:(60)SSL证书问题:无法获取本地颁发者证书”错误之后,最终在OSX 10.9上对我有用的解决方案是:

  1. 找到curl证书PEM文件位置'curl-config --ca'-> /usr/local/etc/openssl/cert.pem

  2. 使用文件夹位置来识别PEM文件'cd / usr / local / etc / openssl'

  3. 创建cert.pem文件的备份'cp cert.pem cert pem.backup'

  4. 从curl网站下载更新的证书文件'sudo wget [http://curl.haxx.se/ca/cacert.pem']

  5. 复制下载的PEM文件以替换旧的PEM文件'cp cacert.pem cert.pem'

    这是发布的解决方案的修改版本,用于更正以下Ubuntu中的相同问题:

[HTTPS://server fault.com/questions/151157/Ubuntu-10-04-curl-how-do-i-fix-update-他和-擦-bundle]

Pinnacle Systems Group answered 2020-08-09T05:02:28Z
translate from https://stackoverflow.com:/questions/18964175/how-to-fix-curl-60-ssl-certificate-invalid-certificate-chain