我有两台MacBook(一台是小牛的,另一台是优胜美地的),两台都有同样的情况。
在用rvm安装ruby 2.2.3之后,我得到以下错误:
.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/net/http.rb:923:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Faraday::SSLError)
我试过在网上寻找解决办法,但似乎什么也没用。大多数有这个问题的人都在运行windows机器。
$ rvm osx-ssl-certs status all
Certificates for /usr/local/etc/openssl/cert.pem: Up to date.
Certificates for /etc/openssl/cert.pem: Up to date.
切换回2.2.2可以正常工作。有什么想法吗?
最佳答案
下载http://curl.haxx.se/ca/cacert.pem并添加
export SSL_CERT_FILE=PATH_TO_THe_DOWNLOADED_FILE/cacert.pem
到.bash_profile/.zshrc部分修复了该问题,因为它在我的系统上引发了以下错误:
Excon::Errors::SocketError: Unable to verify certificate, please set `Excon.defaults[:ssl_ca_path] = path_to_certs`, `ENV['SSL_CERT_DIR'] = path_to_certs`, `Excon.defaults[:ssl_ca_file] = path_to_file`, `ENV['SSL_CERT_FILE'] = path_to_file`, `Excon.defaults[:ssl_verify_callback] = callback` (see OpenSSL::SSL::SSLContext#verify_callback), or `Excon.defaults[:ssl_verify_peer] = false` (less secure).
在rails初始值设定项中将excon.defaults[:ssl_verify_peer]设置为false(仅在开发/测试环境中)可以使其工作。
更新:从源代码重新安装2.2.3解决了我的所有问题。
rvm remove 2.2.3
rvm install 2.2.3 --disable-binary