[RUBY-ON-RAILS] 방법은 OpenSSL : SSL 없애 :: SSLError
RUBY-ON-RAILS방법은 OpenSSL : SSL 없애 :: SSLError
나는 페이스 북이 OmniAuth를 사용하여 사용자를 인증하는 것을 시도하고있다. 처음이 작업을했지만, 그 길을 따라 그냥 작동을 중지하고 나에게이 오류 메시지를 제공하기 시작했다 :
동일한 코드 트위터 잘 작동하고 나는 그것을 페이스 북 작동하지 않는 이유를 알 수없는 것. 나는 도움을 온라인으로 보았다, 그러나 나는 성공하지 않았습니다.
이것은 내가 건물입니다 웹 사이트에 대한 링크입니다 : http://www.bestizz.com/ http://www.bestizz.com/auth/facebook : 그리고 URL을 당신에게 오류 메시지를 줄 것이다
해결법
-
==============================
1.루비는 어떤 루트 인증서를 찾을 수 없습니다. 다음은 디버깅을위한 옵션입니다. 스크립트의 시작에서 다음 코드를 넣습니다 :
루비는 어떤 루트 인증서를 찾을 수 없습니다. 다음은 디버깅을위한 옵션입니다. 스크립트의 시작에서 다음 코드를 넣습니다 :
require 'openssl' OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
-
==============================
2.다음 코드를 추가로 설정 / 초기화 / fix_ssl.rb
다음 코드를 추가로 설정 / 초기화 / fix_ssl.rb
require 'open-uri' require 'net/https' module Net class HTTP alias_method :original_use_ssl=, :use_ssl= def use_ssl=(flag) self.ca_file = "/etc/pki/tls/certs/ca-bundle.crt" # for Centos/Redhat self.verify_mode = OpenSSL::SSL::VERIFY_PEER self.original_use_ssl = flag end end end
노트 :
대부분의 운영 체제는 이미 제공된 인증서 번들로 제공됩니다. 레드햇 엔터프라이즈 리눅스 CentOS는 예를 들어 그것은에 설치되어 :
/etc/pki/tls/certs/ca-bundle.crt
우분투의의 경우 :
/etc/ssl/certs/ca-certificates.crt
-
==============================
3.구글 인증을하는 동안 나는 요세미티에서 실행되는 루비를 업데이트 한 후 같은 문제에 직면하지만 있었어요.
구글 인증을하는 동안 나는 요세미티에서 실행되는 루비를 업데이트 한 후 같은 문제에 직면하지만 있었어요.
이 다음은 https://toadle.me/2015/04/16/fixing-failing-ssl-verification-with-rvm.html 나의 문제를 해결하는 것 같았다.
역사를 위해서 내가 인용합니다 :
결국, 나는 실행을했다 :
rvm uninstall ruby-2.2.4 rvm install ruby-2.2.4 --disable-binary gem pristine --all
도움이 되었기를 바랍니다
-
==============================
4.SSL 검증과 같은 페이스 북에 대한 실패합니다. 나는 더 OpenSSL을 마스터는 아니지만, 나는 이것이 당신을 위해 일한다고 생각합니다.
SSL 검증과 같은 페이스 북에 대한 실패합니다. 나는 더 OpenSSL을 마스터는 아니지만, 나는 이것이 당신을 위해 일한다고 생각합니다.
당신이 OmniAuth의 최신 버전을 사용하고있는 가정 (> = 0.2.2을, 나는 당신이 가정)과 패러데이의 버전> = 0.6.1, 당신은 위치를 전달할 수 있습니다 (스택 추적은 당신이 말한다) 당신의 CA의 인증서를 번들. 이에 따라 페이스 북에 대한 OmniAuth 설정을 수정합니다 :
Rails.application.config.middleware.use OmniAuth::Builder do provider :facebook, 'appid', 'appsecret', {:scope => 'publish_stream,email', :client_options => {:ssl => {:ca_path => '/etc/ssl/certs'}}} # other providers... end
및 번들에 대한 경로로 '/ SSL / 인증서 표시 등 /'교체하십시오. 당신이 일을해야하는 경우,이 파일이 당신을 위해 작동합니다 생각 - 그냥 어딘가에 넣어 그것에게 필요한 권한을 부여하고, 귀하의 응용 프로그램을 가리 킵니다.
자세한 지침이 SO 응답 알렉스 크레머에게 감사드립니다.
-
==============================
5.이 링크는 작동합니다. https://gist.github.com/fnichol/867550 그냥 지침을 따르십시오. 당신은 설치 레일을 다운로드하고 두 개의 명령 줄 기능을 실행해야합니다.
이 링크는 작동합니다. https://gist.github.com/fnichol/867550 그냥 지침을 따르십시오. 당신은 설치 레일을 다운로드하고 두 개의 명령 줄 기능을 실행해야합니다.
-
==============================
6.이,이 OpenSSL을 가진 인증서 오류의 탐을 얻을 것이다 마십시오
이,이 OpenSSL을 가진 인증서 오류의 탐을 얻을 것이다 마십시오
sudo curl http://curl.haxx.se/ca/cacert.pem -o /opt/local/etc/openssl/cert.pem
-
==============================
7.난 그냥 한 못생긴 해결 방법은 인터넷의 클래스를 대체하는 것입니다 : HTTP 및 SSL 인증서에서 확인하지를 알려주는 변수를 설정 :
난 그냥 한 못생긴 해결 방법은 인터넷의 클래스를 대체하는 것입니다 : HTTP 및 SSL 인증서에서 확인하지를 알려주는 변수를 설정 :
require 'net/http' require 'openssl' class Net::HTTP alias_method :orig_connect, :connect def connect @ssl_context.verify_mode = OpenSSL::SSL::VERIFY_NONE orig_connect end end
나는 이런 식으로 내가 인터넷 : HTTP를 호출하는 보석을 호출하는 보석을 호출하는 보석의 소스 코드와 함께 깨끗이 싶지 않기 때문에 않았다. 정말 돌아 가야하고 조금씩 이동하는 방법을 알아낼 대신 별도의 cacert.pem 파일을 볼 수 있습니다. 나는 서버의 cacert.pem 파일을 수정할 수 없습니다, 또는 그 최적의 경로가 될 것입니다.
from https://stackoverflow.com/questions/5711190/how-to-get-rid-of-opensslsslsslerror by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] LINK_TO 및 원격 => 진정한 +의 JQuery와 : 어떻게? 도움? (0) | 2020.03.02 |
---|---|
[RUBY-ON-RAILS] mysql2 보석을 설치할 수 없습니다 (0) | 2020.03.02 |
[RUBY-ON-RAILS] 개발은 4 레일에 ActionMailer 메일을 발송하지 (0) | 2020.03.02 |
[RUBY-ON-RAILS] 어떻게 레일 응용 프로그램에서 경쟁 조건을 피할 수 있습니까? (0) | 2020.03.02 |
[RUBY-ON-RAILS] 유효성 수용은 항상 실패 (0) | 2020.03.02 |