[ruby-on-rails] SSL 인증서 확인 오류로 번들 설치 실패

bundle installCentos 5.5에서 Rails 3 프로젝트를 실행할 때 오류와 함께 실패합니다.

Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 
read server certificate B: certificate verify failed 
(https://bb-m.rubygems.org/gems/multi_json-1.3.2.gem)
An error occured while installing multi_json (1.3.2), and Bundler cannot continue.
Make sure that `gem install multi_json -v '1.3.2'` succeeds before bundling.

보석을 수동으로 설치하려고 gem install multi_json -v '1.3.2'하면 작동합니다. 다른 여러 보석에서도 동일한 문제가 발생합니다. RVM (1.12.3), ruby ​​1.9.2, bundler 1.1.3을 사용합니다.

고치는 방법?



답변

최신 정보

이제 나는이 답변에서 충분히 채굴 된 wh..err를 찾았습니다. 모든 사람들은 이것이 수정되어야한다는 것을 알아야합니다.

다시 : Ownatik을 통해 다시 SSL 인증서 확인 오류와 함께 번들 설치 실패

gem update --system

내 대답은 여전히 ​​정확하며 아래에 나와서 참조하지 않는 경우 참조하십시오.


솔직히 가장 좋은 임시 해결책은

[…] 임시 해결 방법으로 gemfile에 ssl이 아닌 rubygems 버전을 사용하십시오.

사용자 Ownatik를 통해

이것이 의미하는 바는 GemfileRails 애플리케이션 디렉토리 변경 의 맨 위에 있습니다.

source 'https://rubygems.org'

source 'http://rubygems.org'

참고 두 번째 버전인지 HTTP http 대신


답변

임시 솔루션으로 SSL gem 소스를 비 SSL로 교체하십시오.


답변

그 이유는 오래된 루비 젬입니다. 비 SSL 소스를 사용하여 시스템 부분을 먼저 업데이트해야합니다.

gem update --system --source http://rubygems.org/ (비 SSL 연결을 사용하여 시스템 부분을 일시적으로 업데이트).

이제 사용할 준비가되었습니다 gem update.


답변

Mac을 사용하고 있고 최신 버전의 RVM (~ 1.20)을 사용하는 경우 다음 명령이 효과적입니다.

rvm osx-ssl-certs update


답변

이 문제는 이제 해결되었습니다. rubygems ( gem update --system)를 업데이트하거나 openssl이 OS에서 최신 버전인지 확인하거나 여전히 작동하지 않는 다음 팁을 시도해보십시오. http://railsapps.github.com/openssl-certificate-verify-failed.html


답변

임시 솔루션 (Ownatik에서 언급 한 바와 같이) :

행을 포함하여 홈 경로에 .gemrc라는 파일을 작성하거나 수정하십시오. :ssl_verify_mode: 0

이것은 번 들러가 설치를 시도 할 때 SSL 인증서의 gem을 검사하지 못하게합니다.

* nix 디바이스의 경우 ‘홈 경로’는를 의미 ~/.gemrc합니다. 원하는 /etc/gemrc경우 만들 수도 있습니다 . Windows XP의 경우 ‘홈 경로’는를 의미 c:\Documents and Settings\All Users\Application Data\gemrc합니다. Windows 7의 경우C:\ProgramData\gemrc


답변

windows7의 경우 여기 에서 cacert.pem 파일을 다운로드하고 environementvariable SSL_CERT_FILE을 인증서를 저장하는 경로로 설정할 수 있습니다.

SET SSL_CERT_FILE="C:\users\<username>\cacert.pem"

또는 스크립트에서 변수를 다음과 같이 설정할 수 있습니다 ENV['SSL_CERT_FILE']="C:/users/<username>/cacert.pem"

<username>을 자신의 사용자 이름으로 바꾸십시오.