Michael Hartl 튜토리얼을 수행하려고합니다. gemset에 rails 3.2.14를 설치하려고하면 다음과 같은 문제가 발생합니다.
$ gem 설치 레일 -v 3.2.14
오류 : 유효한 보석 ‘레일'(= 3.2.14)을 찾을 수 없습니다. 다음과 같은 이유가 있습니다.
https://rubygems.org/ 에서 데이터를 다운로드 할 수 없음 -SSL_connect 리턴 = 1 errno = 0 state = SSLv3 서버 인증서 B 읽기 : 인증서 확인 실패 ( https://s3.amazonaws.com/production.s3.rubygems.org /specs.4.8.gz )
인터넷 검색 후 루비 젬에 SSL이 아닌 소스를 사용할 수 있다는 것을 알았습니다.
sudo gem sources -a http://rubygems.org
그런 다음 레일을 다시 설치하려고 시도했지만 성공했습니다. 그러나 여전히 위의 문제가 있지만 경고로 나타납니다.
경고 : ‘ https://rubygems.org/ 에서 데이터를 가져올 수 없습니다 ‘ : SSL_connect 리턴 = 1 errno = 0 state = SSLv3 서버 인증서 읽기 B : 인증서 확인 실패 ( https://s3.amazonaws.com/production.s3 .rubygems.org / specs.4.8.gz )
이 경고 / 오류를 완전히 제거하려면 어떻게해야합니까?
나는 다음을 사용하고 있습니다 :
- rvm 1.22.15
- 루비 2.0.0p247 (2013-06-27 개정 41674) [x86_64-darwin12.3.0]
- OSX 10.8.5
답변
RVM 및 OSX 사용자
최신 rvm을 사용해야합니다.
rvm get stable
그런 다음 두 가지 작업을 수행 할 수 있습니다.
-
인증서 업데이트 :
rvm osx-ssl-certs update all
-
루비 젬 업데이트 :
rvm rubygems latest
RVM이 아닌 사용자의 경우
인증서 경로 찾기 :
cert_file=$(ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE')
인증서 생성 :
security find-certificate -a -p /Library/Keychains/System.keychain > "$cert_file"
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$cert_file"
전체 코드 : https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/osx-ssl-certs
OSX 이외의 사용자
package를 업데이트하십시오 ca-certificates
. (이전 시스템에서는 사용하지 못할 수 있습니다. 더 이상 보안 업데이트를받지 않는 이전 시스템을 사용하지 마십시오)
윈도우 노트
루비 설치 프로그램이 창에 의해 준비를위한 빌드 루이스 Lavena 및 인증서의 경로 같은 것을 보여주는 것입니다 C:/Users/Luis/...
체크 https://github.com/oneclick/rubyinstaller/issues/249 자세한 내용은이 대답을 https://stackoverflow.com 수정 하려면 / a / 27298259 / 497756
답변
최신 결과 …
https://gist.github.com/luislavena/f064211759ee0f806c88
가장 중요한 것은 … 다운로드
https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
어디에 붙일 지 알아 내십시오
C:\>gem which rubygems
C:/Ruby21/lib/ruby/2.1.0/rubygems.rb
그런 다음 .pem 파일을 ../2.1.0/rubygems/ssl_certs/에 복사하고 비즈니스를 계속하십시오.
답변
Windows 사용자의 경우
이동 링크 http://rubygems.org/pages/download
- 최신 zip 파일 다운로드 (필자의 경우 2.4.5)
- 압축 해제
- 압축이 풀린 폴더에서 “ruby setup.rb”실행
- 이제 gem install 명령을 실행하십시오.
답변
비 SSL 소스를 사용하려면 먼저 HTTPS 소스를 제거한 다음 HTTP 소스를 추가하십시오.
sudo gem sources -r https://rubygems.org
sudo gem sources -a http://rubygems.org
최신 정보:
mpapis가 말했듯이 이것은 임시 해결 방법으로 만 사용해야합니다. 비 SSL 소스를 통해 RubyGem에 액세스하는 경우 일부 보안 문제가있을 수 있습니다.
해결 방법이 더 이상 필요하지 않으면 SSL 소스를 복원해야합니다.
sudo gem sources -r http://rubygems.org
sudo gem sources -a https://rubygems.org
답변
Windows에서는 HTTP
소스를 사용 하여 업데이트 gem
한 다음을 사용하여 다시 변경해야합니다 HTTPS
.
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/
편집 : 경고 이것이 안전한지 확실하지 않습니다 . 루비 패키지가 서명되었는지 아는 사람이 있습니까? 허용되는 답변은 더 나은 솔루션처럼 보입니다.
답변
Windows 사용자 및 기타 사용자
Rubygems.org에는이 문제를 해결하는 방법뿐만 아니라 왜 많은 사람들이 그 문제를 겪고 있는지 설명하는 안내서가 있습니다. SSL 인증서 업데이트
문제의 원인은 rubygems.org가보다 안전한 SSL 인증서 (SHA-2 256 비트 암호화 사용). rubygems 명령 행 도구는 올바른 인증서에 대한 참조를 번들로 제공합니다. 따라서 루비 젬 자체는 이전 버전의 루비 젬을 사용하여 업데이트 할 수 없습니다. Rubygems는 먼저 수동으로 업데이트해야합니다.
먼저 당신이 가지고있는 루비 젬을 찾으십시오 :
rubygems –v
1.8.x, 2.0.x 또는 2.2.x가 있는지에 따라“rubygems-update-XYZgem”이라는 업데이트 젬을 다운로드해야합니다. 여기서 XYZ는 필요한 버전입니다. 1.8.x 실행 : 다운로드 : https://github.com/rubygems/rubygems/releases/tag/v1.8.30
2.0.x 실행 : 다운로드 : https://github.com/rubygems/rubygems/releases/tag/v2 .0.15
2.2.x 실행 중 : 다운로드 : https://github.com/rubygems/rubygems/releases/tag/v2.2.3
업데이트 젬 설치 :
gem install –-local full_path_to_the_gem_file
업데이트 젬을 실행합니다 :
update_rubygems --no-ri --no-rdoc
rubygems가 업데이트되었는지 확인하십시오 :
rubygems –v
업데이트 젬 제거 :
gem uninstall rubygems-update -x
이 시점에서 괜찮을 수 있습니다. 그러나 새 인증서에 대한 최신 공개 키 파일이 없을 수 있습니다. 이것을하기 위해:
https://rubygems.org/pages/download 에서 최신 인증서 (현재 AddTrustExternalCARoot-2048.pem)를 다운로드 하십시오. . 모든 인증서는 https://github.com/rubygems/rubygems/tree/master/lib/rubygems/ssl_certs 에도 있습니다.
어디에 넣을지 알아보십시오.
gem which rubygems
이 파일을이 위치의 “rubygems \ ssl_certs”디렉토리에 두십시오.
당으로 젬 커밋 , 인증서는보다 구체적인 디렉토리로 이동합니다. 따라서 현재 인증서 (AddTrustExternalCARoot-2048.pem)는 다음 경로에 있어야합니다.lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
답변
젬에 대한 소스 웹 사이트 (예 : rubygems.org)를 사용하십시오. https 대신 http를 사용하십시오. 이 방법에는 인증서 설치와 같은 작업이 필요하지 않습니다.
예 –
gem install typhoeus --source http://rubygems.org
이것은 효과가 있지만 한 가지주의 사항이 있습니다.
gem이 설치되었지만 설명서는 인증서 오류로 인한 것이 아닙니다. 내가 얻는 오류는 다음과 같습니다.
Parsing documentation for typhoeus-0.7.0 WARNING: Unable to pull
data from 'https://rubygems.org/': SSL_connect returned=1 errno=0
state=SSLv3 read server certificate B: certificate verify failed
(https://rubygems.org/latest_specs.4.8.gz)
