web-dev-qa-db-ja.com

バンドのインストールがSSL証明書検証エラーで失敗する

Centos 5.5でRails 3プロジェクトに対してbundle installを実行すると、エラーで失敗します。

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を手動で(gem install multi_json -v '1.3.2'によって)インストールしようとするとうまくいきます。同じ問題が他のいくつかの宝石でも起こります。私はRVM(1.12.3)、Ruby 1.9.2、bundler 1.1.3を使っています。

それを修正するには?

260
mrzasa

更新

私はカルマを使っています…この答えから十分に採掘されたので、みんなこれが修正されたはずだということを知っておくべきです。

re:Ownatik経由で バンドルインストールがSSL証明書検証エラーで失敗する

gem update --system

それでもあなたのために働かないことになったら私の答えはまだ正しいので参考のために下に残しました。


正直なところ最高の一時的な解決策は

[...]一時的な回避策として、gemfileで非SSLバージョンのrubygemsを使用してください。

ユーザーOwnatik経由

それらが意味するものはあなたのRailsアプリケーションディレクトリの変更の中のGemfileの上にあります

source 'https://rubygems.org'

source 'http://rubygems.org'

2番目のバージョンはhttpの代わりにhttpであることに注意してください。s

307
Will

一時的な解決策としてssl gem sourceをnon-sslに置き換えます。

223
StuR

その理由は古いルビゲムです。最初に非SSLソースを使用してシステム部分を更新する必要があります。

gem update --system --source http://rubygems.org/(非SSL接続を使用してシステム部分を一時的に更新する)。

これでgem updateを使う準備ができました。

161

あなたがMacを使っていてRVMの最新版(〜1.20)を使っているのであれば、次のコマンドが役に立ちました。

rvm osx-ssl-certs update
114
chaserx

この問題は修正されるはずです。 rubygems(gem update --system)を更新する、あなたのOS上でopensslが最新版であることを確かめる、あるいはそれでもまだうまくいかないというヒントを試してください: http://railsapps.github.com/openssl-certificate-verify -failed.html

55
fbernier

一時的な解決策(Ownatikが示唆しているように):

ホームパスに.gemrcという名前のファイルを作成または変更します(:ssl_verify_mode: 0行を含む)。

これにより、バンドラーがgemのSSL証明書をインストールしようとしたときにそれらをチェックできなくなります。

* nixデバイスの場合、「ホームパス」は~/.gemrcを意味します。お望みなら/etc/gemrcを作成することもできます。 Windows XPの場合、「ホームパス」はc:\Documents and Settings\All Users\Application Data\gemrcを意味します。 Windows 7の場合、C:\ProgramData\gemrc

49
asfallows

Windows 7では、cacert.pemファイルを こちら からダウンロードして、環境変数SSL_CERT_FILEを証明書を保存するパスに設定します。

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

スクリプトの中でこのように変数を設定することもできますENV['SSL_CERT_FILE']="C:/users/<username>/cacert.pem"

<username>を自分のユーザー名に置き換えます。

16
peter

RVMを使用している場合、この問題に対する本当の解決策は以下のとおりです。

  1. Rubygemsを更新する:gem update --system
  2. RVMを使用してSSL証明書を更新します。rvm osx-ssl-certs update all

RailsAppsプロジェクトでのこのヒント のヒント

15
Alan H.

RVMを介してRubyをインストールしていて、(Brunoの要求に従って読んではいけないことを望んでいる)素早い修正が欲しい人のために、これを試してみてください。

rvm remove 1.9.x (or whatever version of Ruby you are using)
rvm pkg install openssl
rvm install 1.9.2 --with-openssl-dir=$rvm_path/usr

詳細については、ここに私が解決策を見つけたリンクがあります。

http://railsapps.github.com/openssl-certificate-verify-failed.html

ところで、私はUbuntuで私の証明書に触れる必要はありませんでした。

とりわけ、これは回避策ではありません。 SSLを介して宝石をダウンロードし、セキュリティをオフにするよりもはるかに優れている中間者攻撃のような問題がある場合には失敗します。

7
danielrussia

これは修正されました

http://guides.rubygems.org/ssl-certificate-update/

RubyGems 2.6.xがリリースされたので、手動でこのバージョンに更新することができます。

ダウンロード https://rubygems.org/downloads/rubygems-update-2.6.7.gem

あなたが後で指すことができるディレクトリにファイルをダウンロードしてください(例:あなたのハードドライブC:のルート)

今、あなたのコマンドプロンプトを使用して:

C:\>gem install --local C:\rubygems-update-2.6.7.gem
C:\>update_rubygems --no-ri --no-rdoc

この後、gem --versionは新しいアップデートバージョンを報告するはずです。

これで、rubygems-update gemを安全にアンインストールできます。

C:\>gem uninstall rubygems-update -x
6
Roffers

CA証明書のリストは、curlのWebサイト http://curl.haxx.se/ca/cacert.pem からダウンロードできます。

それからSSL_CERT_FILE環境変数を設定してRubyにそれを使用するように指示します。たとえば、Linuxの場合:

$ SSL_CERT_FILE=~/cacert.pem bundle install

(参照: https://Gist.github.com/fnichol/867550

6
arcanex

.pemファイルについての簡易コピーの貼り付け方法

https://Gist.github.com/luislavena/f064211759ee0f806c88

証明書の検証に失敗しました

前のセクションを読んだことがあれば、これが何を意味するのかがわかります(そうでない場合は恥>)。

AddTrustExternalCARoot-2048.pem をダウンロードする必要があります。コマンドプロンプトを開き、次のように入力します。

C:> gem which ruby​​gems C:/Ruby21/lib/Ruby/2.1.0/rubygems.rbそれでは、そのディレクトリを探しましょう。同じウィンドウ内から、ファイル拡張子までのパス部分を入力しますが、代わりにバックスラッシュを使用します。

C:> start C:\ Ruby21\lib\Ruby\2.1.0\ruby​​gemsこれで、指定したディレクトリ内にエクスプローラウィンドウが開きます。

ステップ3:新しい信頼証明書をコピーする

次に、ssl_certsディレクトリを見つけて、前の手順で取得した.pemファイルをコピーします。

GeoTrustGlobalCA.pemのような他のファイルと一緒にリストされます。

5
geniushkg

これは、Windows上でこの問題を解決する方法です。

.permファイルをダウンロードしてから、コマンドプロンプトでSSL_CERT_FILEを設定します。

https://Gist.github.com/fnichol/867550

4
bkdir

最も簡単な解決策:

rvm pkg install openssl
rvm reinstall all --force

ほら!

4
user2886774

同じ問題ですが、宝石が異なります。

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

一時的な解決策:gem install builder -v '3.0.0'は継続することを可能にしますbundle install

4
Ludwig

Windows用の私の永久的な修正:

  1. CACert をダウンロードし、 http://guides.rubygems.org/ssl-certificate-updateからC:\Ruby\ssl_certs\GlobalSignRootCA.pemとして保存します。 /

  2. "SSL_CERT_FILE"というシステム変数を作成し、C:\Ruby\ssl_certs\GlobalSignRootCA.pemに設定します。

  3. もう一度試してください。gem install bundler

C:\gem sources
*** CURRENT SOURCES ***
https://rubygems.org/

C:\gem install bundler
Fetching: bundler-1.13.5.gem (100%)
Successfully installed bundler-1.13.5
1 gem installed
3
Dio Phung

のための@ Alexander.IljushkinへのTHX:

gem update --system --source http://rubygems.org/

そのバンドラーがまだ失敗した後、その解決策は次のとおりです。

gem install bundler

3
Sebastian Ax

Ubuntu 12.04では、おそらく関連しているとはいえ、若干異なるエラーが発生します。

Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=unknown state: sslv3 alert handshake failure (https://d2chzxaqi4y7f8.cloudfront.net/gems/activesupport-3.2.3.gem)
An error occured while installing activesupport (3.2.3), and Bundler cannot continue.
Make sure that `gem install activesupport -v '3.2.3'` succeeds before bundling.

Gemfileでbundle installを付けてsource 'https://rubygems.org'を実行すると発生します。

これはUbuntu 12.04上のOpenSSLの問題です。 Rubygems issue#319 を参照してください。

これを修正するには、Ubuntu 12.04でapt-get update && apt-get upgradeを実行してOpenSSLをアップグレードします。

3
Jo Liss

私はrvmがダウンロードするバイナリが、古くてOSによって使われなくなったOS XのOpenSSLとうまくいかないという事実にこれを追跡することができました。

私にとっての解決策は、rvm経由でRubyをインストールするときにコンパイルを強制することでした。

rvm reinstall --disable-binary 2.2
3
Schrockwell

私は同様のエラーを受けていました。これは私がこれを解決した方法です:あなたのパスディレクトリで、Gemfileをチェックしてください。 gemファイルのソースをhttpsの代わりにhttpに編集して保存します。これにより、SSL証明書を発行せずにバンドラーをインストールすることができます。

2
ecksor5

Windowsマシンの場合は、gemのバージョンを確認してください。

gem --version

それから次のようにあなたの宝石を更新してください。

あなたが後で指すことができるディレクトリ(例えば、あなたのハードドライブC:のルート)にファイルをダウンロードしてください

今、あなたのコマンドプロンプトを使用して:

C:\>gem install --local C:\rubygems-update-1.8.30.gem
C:\>update_rubygems --no-ri --no-rdoc

これで、SSL証明書の検証エラーなしでバンドルのインストールが成功します。

より詳しい説明は こちら

2
KBIIX

これは私のために働いた:

  • 最新のgemを https://rubygems.org/pages/download からダウンロードしてください。
  • gem install --local [path to downloaded gem file]でgemをインストールしてください
  • update_rubygemsで宝石を更新します
  • gem --versionで最新のgemバージョンを使っていることを確認してください
1
Guy Chauliac

私はつい最近この問題に直面し、ここで概説された ステップに従った 。正しいOpenSSL証明書を指していない可能性があります。実行後:

rvm osx-ssl-certs status all
rvm osx-ssl-certs update all

そして

export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt

完全なバンドルが実行されました。

1
jshaf

rubygems-update-2.6.7.gem をダウンロードしてください。

今、あなたのコマンドプロンプトを使用して:

C:\>gem install --local C:\rubygems-update-2.6.7.gem
C:\>update_rubygems --no-ri --no-rdoc

この後、gem --versionは新しいアップデートバージョンを報告するはずです。

これで、rubygems-update gemを安全にアンインストールできます。

C:\>gem uninstall rubygems-update -x
Removing update_rubygems
Successfully uninstalled rubygems-update-2.6.7
1
Aswathy

私はopensslを再インストールしなければなりませんでした:

brew uninstall --force openssl
brew install openssl
1
gabeodess

注意してほしいのは、内部の認証局によって信頼されているSSL証明書をソースから取得している場合(またはSSL検査で会社のWebプロキシを介して外部のソースに接続している場合)です。 。これはおそらくあなたの証明書ストア(macOS上のシステムキーチェーン)からあなたのShellからアクセス可能な場所にあなたのルート証明書をエクスポートすることを必要とするだけです。

export SSL_CERT_FILE=~/RootCert.pem
0
mostlikelee

私のためにレガシーウィンドウシステムとRuby 1.9バージョンで働いていた唯一のことは http://guides.rubygems.org/ssl-certificate-update/ からcacertファイルをダウンロードすることです

そしてバンドルインストールを実行する前に以下のコマンドを実行します

bundle config --global ssl_ca_cert /path/to/file.pem
0

Rails-assetsを使っているのなら

あなたがあなたの資産を管理するためにhttps://Rails-assets.org/を使っていたならば、答えはあなたを助けません。 httpに変換しても役に立ちません。

最も簡単な解決策は、代わりにこのソースを使用することですhttp://insecure.Rails-assets.org。これは彼らの ホームページ で言及されています。

0
Anwar