SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:Mac上的证书验证失败

时间:2013-02-26 04:57:07

标签: ruby-on-rails ruby openssl rvm homebrew

在Mac OSX 10.7.5上使用Homebrew

$ brew install openssl
Error: openssl-1.0.1e already installed

$ rake test.rake
rake aborted!
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

我承认还有其他问题,如标题中的问题,但解决方案似乎都没有效果。我在不同的方面尝试了这些,没有成功:

rvm pkg install openssl
rvm reinstall 1.9.3 --with-openssl-dir=$rvm_path/usr
rvm remove 1.9.3
brew install openssl
rvm install 1.9.3 --with-openssl-dir=`brew --prefix openssl`

我决定查看openssl版本并注意到这一点:

$ openssl version
OpenSSL 0.9.8r 8 Feb 2011

希望这确实是问题,修复就像确保我的笔记本电脑检测到正确的OpenSSL一样简单。

但是我如何解决这个问题,所以我让它使用Homebrew的新OpenSSL?

提前致谢。

4 个答案:

答案 0 :(得分:15)

使用rvm

对我有用
$ rvm osx-ssl-certs status all
$ rvm osx-ssl-certs update all

答案 1 :(得分:3)

基于mpapis的回答,我执行了这些修复问题的命令。

$ cd ~
$ rvm get head
$ rvm requirements

这给了我两个关键的反馈:

Upgrade of RVM in /Users/myuser/.rvm/ is complete.
RVM Reloaded!

Installing requirements for osx, might require sudo password.
Updating certificates in '/usr/local/etc/openssl/cert.pem'.

之后,我再也没有收到错误。

答案 2 :(得分:1)

您需要更新证书:

sudo curl http://curl.haxx.se/ca/cacert.pem -o "$(ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE")"

虽然这被认为是不安全的,因为证书是在没有https的情况下下载的,并且无法判断它们是否在路上没有被更改。

RVM已更新将使用OSX证书更新文件的代码,并将自动提取依赖项,您可以通过以下方式获取:

rvm get head
rvm install 1.9.3

答案 3 :(得分:0)

在我的Mac上运行10.8.3我也遇到了这个问题,但是我遇到了上述解决方案的问题,因为当我试图做的时候     rvm得到了头     安装1.9.3

rvm requirements 

我在运行'requirements_osx_brew_libs_install时遇到错误...这本身就是一场噩梦,请参阅Error running 'requirements_osx_brew_libs_install...' on Mac 10.7以获取证据

无论如何我通过

让它工作
wget http://curl.haxx.se/ca/cacert.pem > 
mv cacert.pem /Users/USER/.rvm/usr/ssl/cert.pem