如何解决安装cocoapods时发生SSL验证错误
我所做的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)
我没有使用SSL的经验,但是我遵循了几个类似于我的问题,但是没有运气
我尝试过的事情:
- 下载并安装新的SHA256中间证书
- 将主机名从https更改为http
- 遵循此guide,但无法将GlobalSignRootCA.pem复制到ruby文件夹
- 使用HomeBrew,但在安装时出现另一个错误
解决方法
MichaelHuelsen 给出了正确答案。在这里,我将提供对我有用的分步说明,但会用一个大文件覆盖 pem 文件,因此请注意,如果其中包含您可能不想销毁的敏感信息。
- 标识证书文件。
$ ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'
"/etc/pki/tls/cert.pem"
告诉我我的证书文件在哪里。
- 备份证书文件
cp /etc/pki/tls/cert.pem /tmp/cert.pem.bak
- 通过 curl 复制完整的证书文件
见:https://curl.se/docs/caextract.html
curl --remote-name --time-cond cacert.pem https://curl.se/ca/cacert.pem
- 移动新的 cacert.pem 文件以替换旧的
mv cacert.pem /etc/pki/tls/cert.pem
然后我运行 gem update --system
来更新内容,但您可能只需运行您原来的 gem
命令即可。
解决问题
从 https://rubygems.org/pages/download 下载(Windows 的 ZIP)
解压到一个目录并cd到那里 安装:ruby setup.rb(你可能需要管理员/root权限)
为我解决了
,尽管给出了解决方法,但最好深入研究问题的根源。您的系统在受信任的 CA 池中缺少 AlphaSSL 中间证书。您需要在您的机器上更新受信任的 CA 根证书和中间证书。最好的来源之一是从 Firefox 中提取的 curl's constantly updated CA certificate storage。否则,您可以手动导入证书。
,我还建议您仔细阅读错误消息。通常,Ruby 证书存储中的默认根 CA(当然)缺少证书链中的重要证书。例如,如果您是(公司)代理。
由于 Ruby 依赖于 openssl,您需要找出您的证书文件所在的位置。
ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'
它输出 ruby 和 gem 正在使用的文件,在我的情况下,在使用 Ruby 3.0 的 Windows 10 下,它看起来类似于:
"C:/Your_Local_Ruby_Install_Path/Ruby30-x64/ssl/cert.pem"
cert.pem 是一个带有证书信息的纯文本文件。您需要下载提供缺少的证书并将其添加到 cert.pem 文件中。
之后您可以使用 gem install your_package
而不会出现与之前丢失的证书相关的 SSL 问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。