web-dev-qa-db-ja.com

RVMを使用してインストールするときのCurl証明書エラーRuby 1.9.2

Ruby 1.9.2。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.

このエラーを解決または回避するにはどうすればよいですか?

90
Will Dennis

1.9.3にアップデートしようとしているときに他の誰かがこれに出くわした場合(バージョンはおそらく重要ではありませんが)、お持ちのrvmのバージョンを確認してください。ウェインはrvm.beginrescueend.comからrvm.ioに移動したようです。古いサイトのセキュリティ証明書の有効期限が切れているため、curlの応答は正しいです。

新しいサイトからrvmを更新すると、この問題が修正され、前進することができました。

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

Update:@rodgerdpackが述べたように、コマンドが変更され、上記を更新しました。一般的に、最新情報については https://rvm.io/ を参照してください。

125
jwadsack

行う場合スクリプトを変更したくない AND行う証明書を「永遠に」追加したくない証明書バンドルに非常に素早い解決策があります:

#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=
40
DanielaWaranie

Curlは.rvm/scripts/fetchで呼び出されます。これはデフォルトではホームディレクトリにあります。

お気に入りのテキストエディターを使用してこれを編集します。たとえば、

 nano ~/.rvm/scripts/fetch

56行目と58行目(もちろん、RVMの他のバージョンによって異なる場合があります)には、次の2行が表示されます。

 fetch_command="curl ...

Curlの後に-kを追加し、保存してもう一度試してください。

21

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

次に、次を使用して2つのファイルを連結します。

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

これらの複雑なソリューションはすべて必要だったかもしれませんが、最初にRVMをアップグレードするだけで問題は解決します。

$ rvm get stable
$ rvm reload
$ rvm install Ruby-1.9.3-p194
17
Nick Messick

Curlで証明書チェックを無効にすることを気にしない場合(私は気にしません):

echo insecure > ~/.curlrc
14
Vojto

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」を確認するため)

11
Serge Seletskyy

Ruby-1.9.2-p290をインストールしようとしていて、同じ問題に遭遇しました。 which curlを実行し、curlインスタンスがシステム(OS X Snow Leopard)のMAMPのインストールから来ていることを認識した後、PATH変数を再構成して、/usr/bin/curlのシステムデフォルトを使用しました。このバージョンcurl 7.19.7を使用して、RVMでRubyの最新バージョンをインストールしても問題はありませんでした。

3
jerikl

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を返しました:以前のエラーから遅延したエラー終了

2
dorothy Dorothy

ドロシー、ありがとうございます-このレシピは、Win7環境用に以下の小さな変更を加えて私のために働きました。

この問題を持つ他の人のために-

  1. CA_Bundleの更新に関する議論を評価してください-良いことですが、この問題は解決しませんでした-pyyaml Webサイトの証明書によりCURLがエラーをスローし、CURLはインストーラー内で起動されるため、-kオプションを追加する方法はありません。

  2. Ruby 1.9.2-p290はYAML 0.1.4をインストールしようとしているため、Googleがミラーを作成し、そのバージョンをダウンロードします-YAML-0.1.3は、問題を回避する効果がありません。

  3. CHMOD 777に相当するウィンドウを実行する必要があります-抽出されたファイルに対してrvm/srcフォルダー内で。全員が所有権/すべての特権を持つようにセキュリティを変更し、すべてのファイルとフォルダーの読み取り専用属性をオフにします。

インストーラーはダウンロードしようとするとエラー(CURLエラー)をスローしますが、解凍しようとすると再開します。 tarballは既にsrcフォルダーに抽出されているため、抽出はエラーをスローします。 YAMLを設定する次の手順は、手順3で権限が正しく設定されていて、インストールがさらに問題なく完了する場合、エラーなしで動作するはずです。 (cygwin/bashを介してインストールする場合、「gcc」などのCコンパイラを追加し、デフォルトのコアcygwinセットアップオプションに「ncurses」(tputコマンド)と「make」を追加する必要があります。)

1
Duke3D
$ 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
0
Matz Heri