[RUBY-ON-RAILS] 루비 1.9.3 사용하는 경우에는 OpenSSL 오류 "인증 실패를 확인"
RUBY-ON-RAILS루비 1.9.3 사용하는 경우에는 OpenSSL 오류 "인증 실패를 확인"
나는 맥 OS 10.6.8 (설치 사용 RVM)에 루비 1.9.3p0을 사용하고 있습니다. 나는 (예를 들어)이와 GitHub의에서 호스팅하는 응용 프로그램 템플릿을 사용하여 새 레일 응용 프로그램을 만들려고하면 :
$ rails new myapp -m https://github.com/RailsApps/rails3-application-templates/raw/master/rails3-mongoid-devise-template.rb -T -O
이 오류 메시지가 :
/Users/me/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:799:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
나는 Ruby 언어 인터프리터는 애플리케이션 템플릿 파일을 요청하는 GitHub의에 연결하기 위해 OpenSSL을 사용하고 이해합니다. GitHub의 SSL을 사용 할 수있는 모든 연결이 필요합니다. OpenSSL이 서버 인증서를 확인할 수 없습니다 때문에 연결에 실패했습니다.
나는 인증서 파일을 다운로드하여 문제를 해결할 수 있었다 :
$ cd /opt/local/etc/openssl $ sudo curl -O http://curl.haxx.se/ca/cacert.pem $ sudo mv cacert.pem cert.pem
루비 1.9.2 사용에는 문제가 없었다. 이유는 루비 1.9.3의 "인증서 확인 실패"문제를 얻었 는가? 이 루비 1.9.3 버그인가? 맥 OS 10.6.8에 그것은 특정인가? 내 솔루션은이 문제를 해결하는 올바른 방법인가?
해결법
-
==============================
1.정답에 참여 움직이는 부분이 많이 있습니다. 당신의 OS, 루비 버전은 OpenSSL 버전, 젬 버전에 따라 다릅니다. 나는 그것을 조사 후 기사를 쓰기까지했다. 내 기사 오류에 대한 이유, 추가 진단을위한 제안 단계, 쇼 몇 가지 해결 방법을 설명하고 가능한 솔루션을 제안합니다. 이 도움이 될 것입니다 :
정답에 참여 움직이는 부분이 많이 있습니다. 당신의 OS, 루비 버전은 OpenSSL 버전, 젬 버전에 따라 다릅니다. 나는 그것을 조사 후 기사를 쓰기까지했다. 내 기사 오류에 대한 이유, 추가 진단을위한 제안 단계, 쇼 몇 가지 해결 방법을 설명하고 가능한 솔루션을 제안합니다. 이 도움이 될 것입니다 :
OpenSSL을 오류 및 레일 - 인증 실패 있는지 확인
GitHub의에 관련 커밋과 문제에 대한 링크도 있습니다.
-
==============================
2.나를 위해이 최신 RVM에 (RVM 1.20.12)을 갱신 한 후 루비 1.9.3-p429를 설치 한 후 사제와 OS X에서 발생했습니다. 나는 실행하여 간단하게 문제를 재현 할 수 :
나를 위해이 최신 RVM에 (RVM 1.20.12)을 갱신 한 후 루비 1.9.3-p429를 설치 한 후 사제와 OS X에서 발생했습니다. 나는 실행하여 간단하게 문제를 재현 할 수 :
$ rvm use ruby-1.9.3-p429 $ irb 1.9.3p429 :001 > require 'open-uri'; open 'https://google.com' OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:800:in `connect' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:800:in `block in connect' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/timeout.rb:55:in `timeout' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/timeout.rb:100:in `timeout' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:800:in `connect' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:756:in `do_start' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:745:in `start' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:306:in `open_http' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:775:in `buffer_open' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:203:in `block in open_loop' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:201:in `catch' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:201:in `open_loop' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:146:in `open_uri' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:677:in `open' from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:33:in `open' from (irb):1 from /Users/lyahdav/.rvm/rubies/ruby-1.9.3-p429/bin/irb:16:in `<main>'1.9.3p429 :002 >
이 솔루션은 문제의 그것과 유사하지만, 경로가 잘못되었습니다. 이 그것을 고정 실행 :
curl https://curl.haxx.se/ca/cacert.pem -o /usr/local/etc/openssl/cert.pem
올바른 경로에 관한 단서는 내가 RVM을 통해 루비 1.9.3-p429를 설치했을 때이 출력에 보여이었다 :
Certificates in '/usr/local/etc/openssl/cert.pem' already are up to date.
나는 RVM은 인증서가 최신 상태로 있었다 주장하는 이유는 확실하지 않다, 그래서 그 디렉토리에있는은 / usr / local / etc /하려면 openssl 경로,하지만 cert.pem 파일을 없었다. 내가 처음에이 일을 한 이유를 알고 좋은 것입니다,하지만 지금 조사 할 시간이 없어.
-
==============================
3.난은 OpenSSL의 설치 RVM에 내 RVM 루비를 컴파일하는 데, 같은 문제가 있었다. 나는 아래의 원래 포스터에 의해 다운로드로 cacerts.pem 파일을 이동 ~ / .rvm는 / usr / SSL / cert.pem 문제가 멀리 갈 수 있도록합니다.
난은 OpenSSL의 설치 RVM에 내 RVM 루비를 컴파일하는 데, 같은 문제가 있었다. 나는 아래의 원래 포스터에 의해 다운로드로 cacerts.pem 파일을 이동 ~ / .rvm는 / usr / SSL / cert.pem 문제가 멀리 갈 수 있도록합니다.
-
==============================
4.저도 같은 문제가되었다.
저도 같은 문제가되었다.
내가 마지막으로 고정하는 방법은이 OpenSSL을 나는 내 버전은 MacPorts를 통해 설치 한 업그레이드했다. 그때 내 MacPorts를 설치를 업그레이드 포트 명령 줄 인터페이스를 통해 내에서 OpenSSL installtion를 업그레이드 오류가 사라졌다 그래서 나는 2009 년부터 OpenSSL 버전을 실행했다.
말할 것도 맥 기반 설치에 루비 / 레일 및 OpenSSL을 사이에 통합이 있어야합니다. 내 경우에는 내가 아니 었있는 페이스 북은 graph.facebook.com의 OAuth를 / 로그인 토큰을 다시 내 응용 프로그램을 고안 및 OmniAuth 필요해야합니다 유효한 SSL 인증서를 보낼 때 제대로 작동하려면 페이스 북으로 로그인을 받고 문제가되었다 OpenSSL을 내 이전 버전.
-
==============================
5.OpenSSL을 인증 디렉토리는 데비안에는 / usr / lib 디렉토리 / SSL /입니다. 그래서, 다음과 같은 세 가지 라인은 나를 위해 충분했다
OpenSSL을 인증 디렉토리는 데비안에는 / usr / lib 디렉토리 / SSL /입니다. 그래서, 다음과 같은 세 가지 라인은 나를 위해 충분했다
$ cd /usr/lib/ssl/ $ sudo curl -O http://curl.haxx.se/ca/cacert.pem $ sudo mv cacert.pem cert.pem
-
==============================
6.어쩌면 당신은 약간 다르게 구성된 각 일을 구축하는 데 어떤 도구 - 그것은 가능성이 있기 때문에 당신이 1.9.2과 1.9.3이 내장 된 방법이 될 수 있습니다. 아니면 그들은 OpenSSL을 다른 버전을 사용합니다.
어쩌면 당신은 약간 다르게 구성된 각 일을 구축하는 데 어떤 도구 - 그것은 가능성이 있기 때문에 당신이 1.9.2과 1.9.3이 내장 된 방법이 될 수 있습니다. 아니면 그들은 OpenSSL을 다른 버전을 사용합니다.
HTTP 1.9.2과 1.9.3 사이 : 여기가 인터넷에 발견 할 수있는 유일한 잠재적으로 관련 변화는
require 'net/protocol' -autoload :OpenSSL, 'openssl' require 'uri' +autoload :OpenSSL, 'openssl'
(당신은 diff를 표시 할 경우 ...)
git clone https://github.com/ruby/ruby.git cd ruby git diff origin/ruby_1_9_2 origin/ruby_1_9_3 -- http.rb
-
==============================
7.나는 비슷한 문제가 아니라 레일에 있지만 Windows에서 단지 루비에 있었다. 나는 "SSL_CERT_FILE의"cacert.pem 인증서를 사용하여 환경 변수에 인증서의 위치를 설정하여 해결
나는 비슷한 문제가 아니라 레일에 있지만 Windows에서 단지 루비에 있었다. 나는 "SSL_CERT_FILE의"cacert.pem 인증서를 사용하여 환경 변수에 인증서의 위치를 설정하여 해결
여기에 상세한 답 : https://stackoverflow.com/a/35429863/4747587
from https://stackoverflow.com/questions/8101377/certificate-verify-failed-openssl-error-when-using-ruby-1-9-3 by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 레일의 세션에 객체 저장 (0) | 2020.02.25 |
---|---|
[RUBY-ON-RAILS] 로거 형식 문자열 구성을 레일 (0) | 2020.02.25 |
[RUBY-ON-RAILS] 잘못 JSON (1.9.2 루비 레일 3) 부호화하는 탈출 (0) | 2020.02.25 |
[RUBY-ON-RAILS] 어떻게 비디오에서 방향 정보를 추출하는? (0) | 2020.02.25 |
[RUBY-ON-RAILS] "보석 레일을 설치는"DNS 오류로 실패 (0) | 2020.02.25 |