在 Windows 上安装 Ruby gems 时出现“证书验证失败”错误

问题描述 投票:0回答:3

我使用的是运行 8.1 的 Windows PC 并使用 Ruby Installer 2.1.5。

安装 gem 时出现错误:

C:\> gem install bundle
ERROR:  Could not find a valid gem 'bundle' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - SSL_connect retur
ned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (
https://api.rubygems.org/latest_specs.4.8.gz)

希望有好的解决方案。

ruby windows ssl rubygems
3个回答
33
投票

我也遇到这个问题了。但使用旧版本并不是正确的解决方案。

这是帮助修复此证书错误的两个解决方案

1。使用 http 而不是 https 将允许您安装 gem 而不会出现该错误

gem 安装捆绑器 -r --source http://rubygems.org/


0
投票

我遇到了这个问题,看来问题是由于 ruby 安装程序版本(2...)引起的,我尝试了版本 1.9.3 并解决了问题。


0
投票

其原因可能是由于 HTTPS 拦截,这在许多企业环境中很常见。 正确的解决方案不是切换到使用

http://
,而是为您的组织添加必要的根证书。

1.为您的组织的证书颁发机构获取公共根证书的
.pem

文件的内容应如下所示:

-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
<< Truncated for brevity >>
AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
-----END CERTIFICATE-----

2.确定您的红宝石
ssl_certs
位置

这可以使用以下命令来完成:

> gem which rubygems
C:/Ruby21/lib/ruby/2.1.0/rubygems.rb

通过上述响应,

ssl_certs
目录将位于:

C:\Ruby21\lib\ruby\2.1.0\rubygems\ssl_certs\

3.将根公共
.pem
文件的副本放入
ssl_certs
目录

>dir C:\Ruby21\lib\ruby\2.1.0\rubygems\ssl_certs\rubygems.org\

10/29/2024  05:33 PM             2,206 org_root.pem

4.如果问题仍未解决,请将环境变量
SSL_CERT_FILE
设置为新根
.pem
文件的完整路径

set SSL_CERT_FILE=C:\Ruby21\lib\ruby\2.1.0\rubygems\ssl_certs\org_root.pem

参考资料:
  1. https://bundler.io/guides/rubygems_tls_ssl_troubleshooting_guide.html
  2. https://github.com/rubygems/rubygems/issues/1736#issuecomment-551890412
© www.soinside.com 2019 - 2024. All rights reserved.