bao*_* le 3 ruby ssl cocoapods
我做了什么 sudo gem install cocoapods
这是来自终端的完整消息
ERROR: You must add /C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2 to your local trusted store
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - hostname "rubygems.org" does not match the server certificate (https://rubygems.org/specs.4.8.gz)
ERROR: SSL verification error at depth 0: unable to get local issuer certificate (20)
Run Code Online (Sandbox Code Playgroud)
我没有使用 SSL 的经验,但我关注了几个与我类似的问题,但没有运气
我试过的:
MichaelHuelsen 有正确的答案。在这里,我将给出对我有用的分步说明,但会用一个大文件覆盖 pem 文件,所以请注意,如果其中包含您可能不想销毁的敏感信息。
$ ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'
"/etc/pki/tls/cert.pem"
Run Code Online (Sandbox Code Playgroud)
告诉我我的证书文件在哪里。
cp /etc/pki/tls/cert.pem /tmp/cert.pem.bak
Run Code Online (Sandbox Code Playgroud)
请参阅:https : //curl.se/docs/caextract.html
curl --remote-name --time-cond cacert.pem https://curl.se/ca/cacert.pem
Run Code Online (Sandbox Code Playgroud)
mv cacert.pem /etc/pki/tls/cert.pem
Run Code Online (Sandbox Code Playgroud)
然后我跑去gem update --system更新东西,但你可能可以运行你的原始gem命令。
我还建议仔细阅读错误消息。当然,Ruby 证书存储中的默认根 CA 通常会缺少证书链中的重要证书。例如,如果您位于(公司)代理后面。
由于 Ruby 依赖 openssl,因此您需要找出您的证书文件所在的位置。
ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'
Run Code Online (Sandbox Code Playgroud)
它输出 ruby 和 gem 正在使用的文件,在我的例子中,在带有 Ruby 3.0 的 Windows 10 下,它看起来类似于:
"C:/Your_Local_Ruby_Install_Path/Ruby30-x64/ssl/cert.pem"
Run Code Online (Sandbox Code Playgroud)
cert.pem 是一个包含证书信息的纯文本文件。您需要下载并提供缺少的证书并将其添加到 cert.pem 文件中。
之后您就可以使用gem install your_package先前丢失的证书而不会出现 SSL 问题。
小智 2
解决问题
从https://rubygems.org/pages/download下载(Windows 为 ZIP)
解压到一个目录并 cd 在那里安装:ruby setup.rb(您可能需要 admin/root 权限)
它为我解决了