SSL_connect에서 반환된 =1 errno=0 상태=SSLv3 읽기 서버 인증서 B: 인증서 확인 실패
타사 로그인에 Authlogic-Connect를 사용하고 있습니다.적절한 마이그레이션을 실행한 후 Twitter/Google/yahoo 로그인은 정상적으로 작동하는 것처럼 보이지만 Facebook 로그인은 예외를 발생시킵니다.
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):
app/controllers/users_controller.rb:37:in `update'
제안 부탁드립니다.
레일 3용 JQuery 제너레이터를 사용하려고 할 때 비슷한 문제가 발생했습니다.
저는 이렇게 해결했습니다.
CURL CA(인증 기관) 번들을 가져옵니다.다음을 사용하여 이 작업을 수행할 수 있습니다.
sudo port install curl-ca-bundle
[MacPorts를 사용하는 경우]- 아니면 그냥 직접 끌어내리기만 하면 됩니다.
wget http://curl.haxx.se/ca/cacert.pem
합니다: SSL 인증확는루비코실행다니합.
SSL_CERT_FILE=/opt/local/etc/certs/cacert.pem rails generate jquery:install
하거나 당의경우, 당신이서선어택는버, 환은의하딘가다원변다니합를같과 같은 할 수 있습니다.ENV['SSL_CERT_FILE'] = /path/to/your/new/cacert.pem
사용자의 environment.vmdk 파일에 있습니다.
또한 CA 파일을 OS에 설치할 수도 있습니다. 여기 긴 지침이 있습니다. 비슷한 방식으로 작동해야 하지만 저는 개인적으로 시도하지 않았습니다.
기본적으로 문제는 일부 웹 서비스가 OpenSSL이 확인할 수 없는 CA에 대해 서명된 인증서로 응답하고 있다는 것입니다.
OS X에서 RVM을 사용하는 경우 다음을 실행해야 합니다.
rvm osx-ssl-certs update all
자세한 내용은 여기에서 확인하십시오. http://rvm.io/support/fixing-broken-ssl-certificates
그리고 다음은 완전한 설명입니다: https://github.com/wayneeseguin/rvm/blob/master/help/osx-ssl-certs.md
갱신하다
Ruby 2.2에서는 이 문제를 해결하기 위해 소스에서 Ruby를 다시 설치해야 할 수도 있습니다.같은 이 있습니다.2.2.3
Ruby 버전 사용):
rvm reinstall 2.2.3 --disable-binary
https://stackoverflow.com/a/32363597/4353 과 이안 코너에게 공을 돌립니다.
Windows에서 수정할 수 있는 방법은 다음과 같습니다. https://gist.github.com/867550 (Fletcher Nichol 제작)
발췌:
수동 방식(지루)
를
cacert.pem
http://curl.haxx.se/ca/cacert.pem 의 파일입니다.이 파일 저장 위치C:\RailsInstaller\cacert.pem
.이제 설정을 통해 Ruby가 인증 기관 번들을 인식하도록 합니다.
SSL_CERT_FILE
현재 명령 프롬프트 세션에서 이 값을 설정하려면 다음을 입력합니다.set SSL_CERT_FILE=C:\RailsInstaller\cacert.pem
이 설정을 영구적으로 설정하려면 제어판에 이 설정을 추가합니다.
신뢰할 루트 인증서를 찾을 수 없습니다.
"루비 1.9와 SSL 오류"라는 해결책을 찾기 위해 이 블로그 게시물을 보세요.
은 해책은다것입다니설을 입니다.
curl-ca-bundle
Firefox에서 사용하는 것과 동일한 루트 인증서가 포함된 포트:sudo port install curl-ca-bundle
그리고 당신에게 말합니다.
https
사용할 개체:https.ca_file = '/opt/local/share/curl/curl-ca-bundle.crt'
Ubuntu에서하려면 Ubuntu를 .
ca_path
attribute, 위치를/etc/ssl/certs
.
OSX에서 이 오류가 발생하는 이유는 rvm이 설치한 루비 때문입니다.
OSX에서 이 문제가 발생하면 다음 블로그 게시물에서 이 문제에 대한 광범위한 설명을 찾을 수 있습니다.
http://toadle.me/2015/04/16/fixing-failing-ssl-verification-with-rvm.html
간략한 버전은 Ruby 일부 버전의 경우 RVM이 사전 컴파일된 이진 파일을 다운로드하여 잘못된 위치에서 인증서를 찾는다는 것입니다.RVM이 소스를 다운로드하고 자체 시스템에서 컴파일하도록 강제하면 인증서 위치에 대한 구성이 올바른지 확인할 수 있습니다.
이를 위한 명령은 다음과 같습니다.
rvm install 2.2.0 --disable-binary
문제의 버전이 이미 있는 경우 다음을 사용하여 다시 설치할 수 있습니다.
rvm reinstall 2.2.0 --disable-binary
(필요에 따라 루비 버전으로 대체하십시오.)
문제는 루비가 신뢰할 루트 인증서를 찾을 수 없다는 것입니다.1.9 기준으로 루비가 이것을 확인합니다.시스템에 pem 파일 형식의 컬 인증서가 있는지 확인해야 합니다.또한 인증서가 Ruby가 예상하는 위치에 있는지 확인해야 합니다.이 인증서는...에서 받을 수 있습니다.
http://curl.haxx.se/ca/cacert.pem
RVM 및 OSX 사용자의 경우 사용 중인 Ruby 버전에 따라 인증서 파일 위치가 달라집니다.:ca_path를 사용하여 경로를 명시적으로 설정하는 것은 좋지 않은 생각입니다. 코드가 프로덕션에 도착하면 이동할 수 없기 때문입니다.따라서 기본 위치에 있는 인증서와 함께 루비를 제공하고 개발자들이 무엇을 하고 있는지 알고 있다고 가정합니다.dtrus를 사용하여 시스템이 인증서 파일을 찾는 위치를 확인할 수 있습니다.
제 경우, 시스템은 다음에서 인증서 파일을 찾고 있었습니다.
/Users/stewart.matheson/.rvm/usr/ssl/cert.pem
그러나 MATUSEX 시스템은 인증서를 기대합니다.
/System/Library/OpenSSL/cert.pem
다운로드 받은 인증서를 이 경로에 복사했고 작동했습니다.HTH
새로운 인증 보석은 다음과 같은 문제를 해결하도록 설계되었습니다.
https://github.com/stevegraham/certified
gem 파일에 gem 'certified'를 추가하고 번들 설치를 실행하기만 하면 됩니다.
- 보석 '인증'
- 번들 설치
최신 Mac 포트가 있는 Mac OS X Lion의 경우:
sudo port install curl-ca-bundle
export SSL_CERT_FILE=/opt/local/share/curl/curl-ca-bundle.crt
그런 다음 실패한 작업을 다시 실행합니다.
참고로 Eric G가 5월 12일에 답변한 이후로 인증서 파일 위치가 변경된 것 같습니다.
디버깅을 위한 다른 옵션이 있습니다.
운영 환경에서 SSL을 사용하면 우선 SSL을 사용할 수 있는 이점이 없어지므로 이 기능을 사용하지 마십시오.로컬 개발 환경에서만 이 작업을 수행할 수 있습니다.
require 'openssl'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
관리 프롬프트에서 하나의 라이너로 Windows용으로 수정
choco install wget
(먼저 chocolatey.org 참조)
wget http://curl.haxx.se/ca/cacert.pem -O C:\cacert.pem && setx /M SSL_CERT_FILE "C:\cacert.pem"
또는 다음과 같이 하십시오.
gem sources -r https://rubygems.org/
gem sources -a http://rubygems.org/
밀라노의 방법:
gem sources -r https://rubygems.org
gem sources -a http://rubygems.org
gem update --system
gem sources -r http://rubygems.org
gem sources -a https://rubygems.org
gem install [NAME_OF_GEM]
이것은 나에게 효과가 있었습니다.
rvm pkg install openssl
rvm reinstall 1.9.2 --with-openssl-dir=$rvm_path/usr
Ubuntu 12.04의 openssl 구현에 문제가 있습니다.
이것이 다소 보잘것없는 솔루션이라는 것을 알고 있지만, 여기에 대답하는 사람들 중 극히 소수만이 Windows를 사용하고 있으며, 일부 Windows 사용자(나도 포함)는 간단하고 직관적인 접근 방식을 좋아할 것이라고 생각하기 때문에 저는 여전히 이것을 공유하고 있습니다.
require 'openssl'
puts OpenSSL::X509::DEFAULT_CERT_FILE
그러면 openssl에서 인증서 파일을 찾는 위치가 표시됩니다.내 이름은 루이스가 아니지만, 내 이름은C:/Users/Luis/Code/luislavena/knap-build/var/knapsack/software/x86-windows/openssl/1.0.0l/ssl/cert.pem
에 따라 수 ( 경각환따예다수를있라습다니에경로는예(▁may다있니:습▁the수▁be▁pathments▁(를▁differente▁depending다▁own▁environ:openknapsack
에 luislavena
).
길은 그 후에도 변하지 않았습니다.set SSL_CERT_FILE=C:\foo\bar\baz\cert.pem
콘솔을 통해, 그러니까... 디렉터리를 만들었습니다. C:\Users\Luis\Code\luislavena\knap-build\var\knapsack\software\x86-windows\openssl\1.0.0l\ssl
로컬 디스크에 특정 파일을 넣었습니다.
비록 형편없지만, 이것은 분명히 효과가 있을 것입니다.
설해봤다니를 해 보았습니다.curl-ca-bundle
와 함께brew
그러나 패키지는 더 이상 사용할 수 없습니다.
$ brew install curl-ca-bundle
Error: No available formula for curl-ca-bundle
Searching formulae...
Searching taps...
Mac에서 사용할 수 있었던 솔루션은 다음과 같습니다.
$ cd /usr/local/etc/openssl/certs/
$ sudo curl -O http://curl.haxx.se/ca/cacert.pem
에 이 하세요.~/.bash_profile
(또는)~/.zshrc
zsh):
export SSL_CERT_FILE=/usr/local/etc/openssl/certs/cacert.pem
그런 다음 터미널을 업데이트합니다.
$ source ~/.bash_profile
저는 루비 프로젝트를 진행하면서 같은 문제를 겪었습니다.Windows 7 64비트를 사용하고 있습니다.
이 문제를 해결 방법:
- http://curl.haxx.se/ca/cacert.pem 에서 cacert.pem 파일을 다운로드하는 중입니다.
- 해당 파일을 C:/RubyCertificates/cacert에 저장했습니다.펨
- 그런 다음 환경 변수 "SSL_CERT_FILE"을 "C:\RubyCertificates\cacert.pem"
출처: https://gist.github.com/fnichol/867550
나에게 가장 직접적인 대답은 이것이었습니다.
sudo apt-get install openssl ca-certificates
그리고 voila!!!
홈브루를 사용하는 OS X 10.8.x:
brew install curl-ca-bundle
brew list curl-ca-bundle
cp /usr/local/Cellar/curl-ca-bundle/1.87/share/ca-bundle.crt /usr/local/etc/openssl/cert.pem
그렇다면 이 블로그 게시물에서 알 수 있듯이,
"넷을 치료하는 방법::HTTP의 위험한 기본 HTTPS 동작"
할 수도 있습니다.always_verify_ssl_certificates
에 할 수 ca_file
.
이것은 저에게 효과가 있었습니다.rvm 및 brew를 사용하는 경우:
rvm remove 1.9.3
brew install openssl
rvm install 1.9.3 --with-openssl-dir=`brew --prefix openssl`
나는 이 문제와 제안된 해결책에 부딪혔습니다.rvm osx-ssl-certs update all
OSX의 RVM 사용자임에도 불구하고 작동하지 않았습니다.
해결책은 최신 버전의 openssl을 다시 설치하는 것이었습니다.
brew update
brew remove openssl
brew install openssl
터미널에서 실행하여 이 문제를 해결했습니다.전체 기록은 이쪽에서 가능합니다.
rvm install 2.2.0 --disable-binary
OSX 솔루션:
최신 rvm 안정 버전 설치
rvm get stable
uservm 명령을 사용하여 인증서를 자동으로 해결
rvm osx-ssl-certs update all
레일 앱을 로컬에서 실행하는 경우 application.rb의 맨 아래에 이 행을 추가하면 됩니다.
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
이후에는 문제없이 앱을 사용할 수 있습니다.당신은 그것을 해킹이라고 부를 수 있지만 추천하지 않습니다.로컬로 실행해야 할 경우에만 사용
레오파드에 대해 특별히 문제가 있는 경우 제가 도움을 준 것은 다음과 같습니다.
제 증명서는 오래되어 업데이트가 필요했습니다.다운로드한 항목:
http://curl.haxx.se/ca/cacert.pem
그런 다음 여기 레오파드에서 찾은 인증서를 교체합니다.
/usr/share/curl/curl-ca-bundle.crt
액세스할 수 있는 모든 것을 다시 로드하면 바로 사용할 수 있습니다!
제게 효과가 있는 것과 지침이 약간 달랐기 때문에, 저는 제 2센트를 추가한다고 생각했습니다.
OS X Lion에 있고 macports와 rvm을 사용하고 있습니다.
curl-ca-bundle을 설치했습니다.
sudo port install curl-ca-bundle
그런 다음 옴니아튜트 구성을 다음과 같이 조정했습니다.
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, APP_CONFIG['CONSUMER_KEY'], APP_CONFIG['CONSUMER_SECRET'],
:scope => 'https://www.google.com/m8/feeds https://www.googleapis.com/auth/userinfo.profile',
:ssl => {:ca_path => "/share/curl/curl-ca-bundle.crt"}
end
/usr/local/etc/openssl에 cert.pem을 가리키는 심볼 링크가 있는 경우 다음을 수행합니다.
ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE" (should be /usr/local/etc/openssl)
cd /usr/local/etc/openssl
wget http://curl.haxx.se/ca/cacert.pem
ln -s cacert.pem 77ee3751.0 (77ee3751.0 is my symbolic link, should depend on the openssl version)
저에게 효과가 있었던 것은 다음과 같은 답변들의 조합입니다.
# Reinstall OpenSSL
brew update
brew remove openssl
brew install openssl
# Download CURL CA bundle
cd /usr/local/etc/openssl/certs
wget http://curl.haxx.se/ca/cacert.pem
/usr/local/opt/openssl/bin/c_rehash
# Reinstall Ruby from source
rvm reinstall 2.2.3 --disable-binary
나는 며칠 동안 문제가 있었고 여기저기를 해킹하고 있었습니다.이 링크는 저에게 매우 도움이 되는 것으로 밝혀졌습니다.MAC OS X 9에서 SSL을 성공적으로 업그레이드하는 데 도움이 되었습니다.
MAC OSX에서 항상 rvm의 문제가 아닌 경우가 있습니다. 문제가 해결되지 않은 .rvm을 제거하면(특히 타임머신에서 데이터를 백업하는 동안) 이러한 방법을 시도할 수 있습니다.
1.brew update
2.brew install openssl
추가 중gem 'certified', '~> 1.0'
나에게Gemfile
러닝bundle
저를 위해 이 문제를 해결했습니다.
언급URL : https://stackoverflow.com/questions/4528101/ssl-connect-returned-1-errno-0-state-sslv3-read-server-certificate-b-certificat
'programing' 카테고리의 다른 글
jpa에서 객체를 저장하기 전에 id를 어떻게 알 수 있습니까? (0) | 2023.06.22 |
---|---|
윈도우즈가 부팅될 때 오라클 데이터베이스가 시작되지 않도록 방지하는 방법은 무엇입니까? (0) | 2023.06.22 |
Android의 Test와 동일한 기능을 가진 iOS에서 메시지 표시 (0) | 2023.06.22 |
MongoDB 문서에서 특수 문자가 포함된 문자열 검색 (0) | 2023.06.22 |
SQL 내부 조인 on select 문 (0) | 2023.06.17 |