gpt4 book ai didi

ruby-on-rails - OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B: 证书验证失败

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:59 24 4
gpt4 key购买 nike

我使用 RVM 在 Ubuntu 12.04 上安装 Ruby 1.9.3

rvm pkg install openssl
rvm install 1.9.3 --with-openssl-dir=$rvm_path/usr

然后当我尝试按照以下方式运行时:

require 'open-uri'
open('https://www.google.com/')

我收到错误:OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

我该如何解决这个问题?我有很多类似的线程,人们在 OSX 中遇到了这个问题,但我如何在 Ubuntu 中解决它?

感谢您的帮助。

最佳答案

如果未使用 native OpenSSL 库正确设置默认的“OpenSSL 目录”,有时会发生这种情况。 open-uri 使用 OpenSSL::X509::Store#set_default_paths 告诉 OpenSSL 在 OpenSSL 目录中查找包含 OpenSSL 默认信任的受信任根证书的文件。

在您的情况下,此查找失败。您可以通过设置覆盖默认设置的环境变量并告诉 OpenSSL 在该目录中查找来使其成功:

export SSL_CERT_FILE=/etc/pki/tls/cert.pem

这是我的 Fedora 16 64 位上根 CA 包的默认位置,其他常用位置是/etc/ssl/ca-bundle.crt 等。在您的情况下,RVM 使用的 OpenSSL 库位于 $rvm_path/usr,因此您应该在那里寻找适合默认根 CA 文件的候选者。环境变量设置正确后,open-uri调用就会成功。

要使环境变量永久化,请使用常用方法,例如在 .bashrc、/etc/profile 或任何最适合您情况的方法中定义导出。

关于ruby-on-rails - OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B: 证书验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10728436/

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