RVM을 사용하여 Ruby 1.9.2를 설치할 때 Curl 인증서 오류


90

Ruby 1.9.2를 다운로드하려고 할 때 RVM에서 인증서 오류가 발생합니다. 마치curl 인증서 문제가 발생하지만 난 어떻게 바이 패스 확실하지 않습니다. 아래에 정확한 오류 정보를 포함했습니다.

$ rvm install 1.9.2
Installing Ruby from source to: /Users/willdennis/.rvm/rubies/ruby-1.9.2-p180, this may take a while depending on your cpu(s)...

ruby-1.9.2-p180 - #fetching 
ERROR: Error running 'bunzip2 '/Users/willdennis/.rvm/archives/ruby-1.9.2-p180.tar.bz2'', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/extract.log
ruby-1.9.2-p180 - #extracting ruby-1.9.2-p180 to /Users/willdennis/.rvm/src/ruby-1.9.2-p180
ruby-1.9.2-p180 - #extracted to /Users/willdennis/.rvm/src/ruby-1.9.2-p180
Fetching yaml-0.1.3.tar.gz to /Users/willdennis/.rvm/archives

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
ERROR: There was an error, please check /Users/willdennis/.rvm/log/ruby-1.9.2-p180/*.log. Next we'll try to fetch via http.
Trying http:// URL instead.

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
ERROR: There was an error, please check /Users/willdennis/.rvm/log/ruby-1.9.2-p180/*.log
Extracting yaml-0.1.3.tar.gz to /Users/willdennis/.rvm/src
ERROR: Error running 'tar zxf /Users/willdennis/.rvm/archives/yaml-0.1.3.tar.gz -C /Users/willdennis/.rvm/src --no-same-owner', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/yaml/extract.log
/Users/willdennis/.rvm/scripts/functions/packages: line 55: cd: /Users/willdennis/.rvm/src/yaml-0.1.3: No such file or directory
Configuring yaml in /Users/willdennis/.rvm/src/yaml-0.1.3.
ERROR: Error running ' ./configure --prefix="/Users/willdennis/.rvm/usr"  ', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/yaml/configure.log
Compiling yaml in /Users/willdennis/.rvm/src/yaml-0.1.3.
ERROR: Error running '/usr/bin/make ', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/yaml/make.log
Installing yaml to /Users/willdennis/.rvm/usr
ERROR: Error running '/usr/bin/make install', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/yaml/make.install.log
ruby-1.9.2-p180 - #configuring 
ERROR: Error running ' ./configure --prefix=/Users/willdennis/.rvm/rubies/ruby-1.9.2-p180 --enable-shared --disable-install-doc --with-libyaml-dir=/Users/willdennis/.rvm/usr ', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/configure.log
ERROR: There has been an error while running configure. Halting the installation.

이 오류를 해결하거나 방지하려면 어떻게해야합니까?


루비 버전을 컴파일하기 위해 이전 종속성을 모두 설치 했습니까?
eveevans

전체 문제와 제안 된 해결책은 매우 긴 오류 메시지에 명시되어 있습니다. 여기에있는 답변에서 그 텍스트를 반복하는 것이 많은 도움이 될 것이라고 생각하지 않습니다. 언급 된 URL을 읽는 것으로 시작하십시오.
다니엘 Stenberg 사용자

2
@daniel curl이 rvm에 의해 구동되기 때문에 curl이 잘못된 SSL 인증서 -k에 대해 불평하는 것을 중지하는 일반적인 방법을 제외하고는 여기서 사용할 수 없습니다. BTW, curl이 잘못된 SSL 인증서를 무시하도록 허용 할 것인지 신중하게 생각해야합니다. 시도 할 수있는 한 가지는 curl에 새로운 CA 번들 을 제공하는 것 입니다. 아래 @dorothy의 답변이 작동합니다.
Dan Barowy 2011

@dan : 오류 메시지를 다시 읽으십시오. 특히 잘못된 인증서를 무시하도록 제안하지는 않습니다 (오류 메시지를 작성했습니다). 수행 할 수있는 작업을 명확하게 설명하고 업데이트 된 CA 인증서를 얻는 방법에 대한 세부 정보를 포함한 전체 설명이 포함 된 URL을 제공합니다.
Daniel Stenberg 2011

1
@daniel : 요점은 오류 메시지가 rvm이 아니라 curl에 대한 것입니다! curl의 제안 된 솔루션을 원하는대로 읽을 수 있지만 rvm의 curl 호출을 수정할 수 없으면 문제가 발생합니다. 나는 curl의 SSL 번들 (CURL_CA_BUNDLE 설정)을 업데이트하려고 시도했지만 작동하지 않았습니다. 실제로 오래된 curl CA 번들이 아니라 yaml tarball을 호스팅하는 원격 SSL 인증서에 문제가 있습니다. 출력을 읽어도 문제 실제로 해결 되면 사용자에게 RTFM을 알려주는 것이 좋지만 여기서는 그렇지 않습니다 . 다시, 실제로 문제를 해결하는 아래 답변을 참조하십시오 .
Dan Barowy 2011

답변:


125

1.9.3으로 업데이트를 시도하는 동안 다른 사람이이 문제를 발견하는 경우 (버전은 중요하지 않지만) 보유하고있는 rvm의 버전을 확인하십시오. Wayne은 rvm.beginrescueend.com에서 rvm.io로 이동 한 것 같습니다. 이전 사이트의 보안 인증서가 만료되었으므로 curl의 응답이 정확합니다.

새 사이트에서 rvm을 업데이트하면이 문제가 해결되어 앞으로 나아갈 수있었습니다.

$ \curl -L https://get.rvm.io | bash -s stable --rails --autolibs=enabled

업데이트 : @rodgerdpack이 언급했듯이 명령이 변경되고 위의 내용을 업데이트했습니다. 일반적으로 최신 정보는 https://rvm.io/ 를 참조 하십시오 .


1
이 답변을 먼저 보았 으면 좋겠습니다. 위에서 제안한 솔루션을 사용해도 RVM을 사용하여 Mac OS X에 1.9.3을 설치하는 것은 작동하지 않았습니다. 그러나 RVM을 업데이트하면 트릭이 발생했습니다.
chris_radcliff 2011

이 너무 나를 위해 그것을 한 일이었다 (업그레이드 1.9.2에서 1.9.3로) 덕분에 @jwadsack
안나 Billstrom

당신이 언급 명령을 실행 요즘 "을 참조하십시오, 당신은 오래된 깨진 우분투 패키지를 실행라는 메시지를 제공 stackoverflow.com/questions/9056008/... 를 해결하는 방법에 대한"를
rogerdpack

40

경우 스크립트를 변경하지 그리고 당신은 않습니다 "지금은"인증서를 추가하지 CERT는 번들로. 매우 훌륭하고 빠른 솔루션이 있습니다.

#to download the cert
wget http://curl.haxx.se/ca/cacert.pem
#to let curl use it for the next calls
export CURL_CA_BUNDLE=~/cacert.pem

그런 다음 스크립트를 실행하십시오. 환경 변수를 재설정하려면 (이 인증서를 사용하지 않아야하는 후속 스크립트 호출의 경우) 시스템에 다시 로그인하거나 환경 변수를 설정 해제하십시오.

export CURL_CA_BUNDLE=

이것은 yaml의 문제를 해결했지만 합병증의 다른 부분과 별도의 문제가 있습니다.
Emerson 2011

4
이제 CentOS에 rvm을 설치할 수 있습니다. 감사합니다 아주 많이
LY channa

rvm 1.8.3이있는 OSX Lion에서는 아무 작업도 수행하지 않습니다.
Mark Richman

Centos5.4에서 잘 작동합니다. 감사합니다.
Su

루비 2.0.0을 얻기 위해 OSX Mountain Lion의 매력처럼 작동합니다.
Arkan

21

Curl은 .rvm / scripts / fetch에서 호출되며 기본적으로 홈 디렉토리에 있습니다.

좋아하는 텍스트 편집기를 사용하여 편집하십시오. 예 :

 nano ~/.rvm/scripts/fetch

56 행과 58 행 (물론 다른 버전의 RVM에 따라 다를 수 있음)에서 시작하는 두 행을 볼 수 있습니다.

 fetch_command="curl ...

curl 후에 -k를 추가하고 저장하고 다시 시도하십시오.


9
저에게는 효과가 없었지만 아이디어를 따랐고이 대안을 찾았습니다. 홈 폴더 ( '~ / .curlrc')에 ".curlrc"파일을 만듭니다. 아무 편집기에서나 열고 파일에 "안전하지 않음"을 입력합니다. 파일을 저장하고 최선을 다하십시오.
Julian Weimer 2011 년

8
RVM 그 변화를 포함하지 않습니다 당신이 안전하지 않은 (-k)를 사용하여 바로 호출 할 필요가 있다면, 우리가 이런 식으로 일을 낙담 echo insecure >> ~/.curlrc@dbikard 지침에 따라 업데이트 인증서 또는 더 나은 단지
mpapis

데비안 스퀴즈 작업을했습니다. 오래된 게시물도 많은 시간을 절약 할 수 있습니다.;) thx!
23tux

@mpapis 나는 전적으로 동의하지만 RVM 설치 오류에서 user620965의 솔루션을 설명하는 오류는 대단 할 것입니다
Houen

3
이는 아래 게시물에 언급 된 rvm.io에 대한 URL 변경 때문일 가능성이 높으며이 문제를 해결하는 올바른 방법입니다. SSL 인증서 또는 컬 동작을 무시할 필요가 없습니다. $ curl -L get.rvm.io |를 실행하여 적절한 URL에서 rvm을 업데이트하십시오. bash -s stable
cclark

20

http://curl.haxx.se/ca/cacert.pem 에서 ca 인증서를 다운로드 하여 curl-ca-bundle-new.crt 파일에 추가해야합니다.

이 파일의 위치를 ​​찾으려면 다음을 사용하십시오.

   $ curl-config --ca

   /usr/share/curl/curl-ca-bundle.crt

curl-ca-bundle.crt 파일을 백업합니다.

$ cp /usr/share/curl/curl-ca-bundle.crt /usr/share/curl/curl-ca-bundle.crt.old

그런 다음 다음을 사용하여 두 파일을 연결하려고합니다.

$ cat cacert.pem /usr/share/curl/curl-ca-bundle.crt >> curl-ca-bundle-new.crt

감사합니다. 시간을 절약했습니다!
Tadas T '

이것은 (아마도) OpenIndiana 151에서 저를 HOURS 절약했습니다 . 한 번 이상 찬성 투표를 할 수 있다면 그렇게 할 것입니다.
Andrew Burns

이것은 CentOS 5.8에서 저에게 효과적이었습니다. 인증서는 CentOS에서 찾아야하는 사용자를 위해 / etc / pki / certs /에 있습니다!
geedew

그리고 결과 curl-ca-bundle-new.crt로 무엇을할까요?
Valerio Schiavoni

새 인증서 파일은 'curl-config --ca'를 사용하여 찾은 디렉토리에 있어야합니다.
사진 제공 : Anirudh

17

아마도 이러한 모든 복잡한 솔루션이 한때 필요했지만 이제는 먼저 RVM을 업그레이드하기 만하면 문제가 해결됩니다.

$ rvm get stable
$ rvm reload
$ rvm install ruby-1.9.3-p194

2
안타깝게도 RVM 버전이 충분히 오래된 경우 "rvm get head"도 작동하지 않습니다. @jwadsack의 답변은 이유를 설명합니다.
Alex D

맞아 사실이야. 또한 내 대답을 돌아 보면 "rvm get head"도 최고의 조언이 아닙니다. 정말 "rvm get stable"이어야합니다. 이것을 반영하기 위해 내 대답을 편집 할 것입니다.
Nick Messick

14

컬에서 인증서 확인을 비활성화해도 괜찮다면 다음을 수행하십시오.

echo insecure > ~/.curlrc

11

Centos 5.6 (최종)에서 rvm 1.9.2를 설치하는 데 문제가있었습니다. 오류는 다음과 같습니다.

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
ERROR: There was an error, please check /usr/local/rvm/log/ruby-1.9.2-p290/*.log. Next we'll try to fetch via http.
Trying http:// URL instead.

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
ERROR: There was an error, please check /usr/local/rvm/log/ruby-1.9.2-p290/*.log
ERROR: There has been an error while trying to fetch the source.  
Halting the installation.
ERROR: There has been an error fetching the ruby interpreter. Halting the installation.

문제 해결에 도움이 된 조치 목록은 다음과 같습니다.

$ curl-config --ca # show path to the certificate
/usr/local/share/curl/curl-ca-bundle.crt
$ cd /usr/local/share/curl/ # go to that path
$ cp curl-ca-bundle.crt curl-ca-bundle.crt.bak # backup certificate
$ curl http://curl.haxx.se/ca/cacert.pem -o curl-ca-bundle.crt # download new
$ rvm install 1.9.2 # bingo it works

Btw curl 버전은 curl 7.18.0입니다 ( '$ curl -V'확인)


1
제 경우에는 "rvm get head"를 실행할 때이 오류가 발생했습니다. 그리고 리눅스에서는 curl-ca-bundle.crt라는 이름으로 조심하십시오! 다르다
Albert Català

3

나는 설치를 시도 ruby-1.9.2-p290하고 같은 문제가 발생했습니다. which curlcurl 인스턴스가 내 시스템 (OS X Snow Leopard)에 설치된 MAMP에서 나온다는 것을 실행 하고 인식 한 후 , PATH에서 시스템 기본값을 사용하도록 변수를 재구성 했습니다 /usr/bin/curl. 이 버전을 사용하면 curl 7.19.7RVM과 함께 최신 버전의 Ruby를 설치하는 데 문제가 없었습니다.


2

RVM을 사용하여 1.9.2를 설치하는 데 문제가 있습니다. 다음은 내 솔루션입니다.

여전히 파일을 찾을 수 없음 오류가 발생했지만 설치는 계속되었습니다.

[2011-07-05 14:24:07] tar zxf /Users//.rvm/archives/yaml-0.1.3.tar.gz -C /Users//.rvm/src --no-same-owner tar (하위) : /Users//.rvm/archives/yaml-0.1.3.tar.gz : 열 수 없음 : 해당 파일 또는 디렉토리가 없습니다. tar (하위) : 오류를 복구 할 수 없습니다. 지금 종료 중 tar : 하위가 상태 2를 반환했습니다. tar : 이전 오류에서 지연된 오류 종료


1
나는 비슷한 일을했고, 잘 밖으로 일 :wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz; cp yaml-0.1.4.tar.gz /Users/yourname/.rvm/archives; rvm install default
웨이

이 솔루션 만이 Mac Osx Lion에서 저에게 효과적이었습니다. 감사합니다!
Christian Treppo 2012

1

Dorothy에게 감사합니다.이 레시피는 Win7 환경에서 다음과 같은 사소한 수정으로 저에게 효과적이었습니다.

이 문제가있는 다른 사용자를 위해-

  1. CA_Bundle 업데이트에 대한 토론에 감사드립니다.-좋은 일이지만이 문제에 도움이되지 않았습니다. pyyaml ​​웹 사이트 인증서는 여전히 CURL을 발생시키고 설치 프로그램 내에서 CURL이 실행되기 때문에 -k 옵션을 추가 할 방법이 없습니다. .

  2. Ruby 1.9.2-p290은 YAML 0.1.4를 설치하려고하므로 Google에서 미러 버전을 다운로드하고 YAML-0.1.3은 문제를 우회하는 데 아무런 영향을 미치지 않습니다.

  3. 추출 된 파일에 대해 rvm / src 폴더 내에서 CHMOD 777에 해당하는 Windows를 수행해야합니다. 모든 사람이 소유권 / 모든 권한을 갖도록 보안을 변경하고 모든 파일 및 폴더에 대한 읽기 전용 속성을 해제하십시오.

설치 프로그램은 다운로드를 시도 할 때 여전히 오류 (CURL 오류)가 발생하지만 추출을 시도하면 다시 시작됩니다. tarball이 이미 src 폴더에 추출 되었기 때문에 추출시 오류가 발생합니다. YAML 구성의 다음 단계는 3 단계의 권한이 올바르게 설정되고 추가 문제없이 설치가 완료되는 경우 오류없이 작동합니다. (cygwin / bash를 통해 설치하는 경우 'gcc'와 같은 C 컴파일러를 추가하고 기본 핵심 cygwin 설정 옵션에 'ncurses'(tput 명령) 및 'make'를 추가해야합니다.


0
$ sudo apt-get install curl

$ curl -L https://get.rvm.io | bash -s stable --ruby   with ruby

$ curl -L https://get.rvm.io | bash -s stable --rails   with rails
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.