![](/img/trans.png)
[英]OpenSSL::SSL::SSLError - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
[英]OpenSSL::SSL::SSLError SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
我的環境,
% openssl version
OpenSSL 0.9.8r 8 Feb 2011
% curl --version
curl 7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz
% rails -v
Rails 3.0.3
% ruby -v
ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-darwin12.2.0]
% rvm --version
rvm 1.15.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
omniauth version is '0.2.6'
然后我通過facebook使用omniauth登錄並獲得以下錯誤。
OpenSSL::SSL::SSLError
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
我試圖解決這個問題。
在〜/ .zshrc中添加一行
export CURL_CA_BUNDLE='/System/Library/OpenSSL/certs/cert.pem'
我正在使用自制軟件。 和curl-config --ca顯示空行。
% curl-config --ca
(empty output)
我怎么解決這個問題?
提前致謝。
如果您使用brew和rvm,請使用以下命令:
rvm remove 1.9.3
brew install openssl
rvm install 1.9.3 --with-openssl-dir=`brew --prefix openssl`
這里有一堆可能對您有用的解決方案:
http://railsapps.github.com/openssl-certificate-verify-failed.html
如果它仍然不起作用,Rahul的答案幾乎對我有用,除了我必須強制下載rvm SSL文件夾中的證書:
rvm pkg install openssl
rvm install 1.9.3-p374 –with-openssl-dir=$rvm_path/usr
cd $rvm_path/usr/ssl
curl -O http://curl.haxx.se/ca/cacert.pem
mv cacert.pem cert.pem
希望這有幫助,文森特
兩件事可能會有所幫助。 首先,您可以在命令行中使用openssl來測試您的證書是否正確鏈接在一起。 例如:
openssl verify -CAfile your-bundle.crt your.crt
這可能涉及將Facebook的公鑰添加到您的捆綁包中,但如果沒有您正在使用的證書的更多詳細信息,很難說。 其次,您在導出CURL_CA_BUNDLE時走的是正確的道路。 一旦鏈正確,那么另一個選擇是使用curl和一些命令行選項。 例如:
curl --verbose --head https://example.com:443/ --cert ./testclient.crt --key testclient.key --cacert test-bundle.crt
對不起,我無法幫助解決你的問題。 祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.