0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

企業ネットワークが原因で、RubyGemsが "Could not verify the SSL certificate" となる問題への対応

Posted at

はじめに

UTM(SonicWallなど)やSASE(CATO, NetSkopeなど)によりSSL/TLSインスペクションが適用されたネットワーク上で gem install などのコマンドを実行すると、次のエラーが発生する場合があります。

Retrying fetcher due to error (2/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.

Retrying fetcher due to error (3/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.

Retrying fetcher due to error (4/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.

There is a chance you are experiencing a man-in-the-middle attack, but most
likely your system doesn't have the CA certificates needed for verification. For
information about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect
without using SSL, edit your Gemfile sources and change 'https' to 'http'

RubyGems関連のトラフィックをTLSインスペクションから除外してこの問題を回避する方法もありますが、セキュリティ上の観点からはTLSインスペクションから除外する方法はあまり好ましくなく、最終手段として考えておきたいものです。

幸いなことに、UTMやSASEベンダー各社は、このようなケースを想定して、製品やサービスに対応した独自のCA証明書を発行しています。そのCA証明書を適切な位置に配置することで、この問題を解消することが可能です。手順は次の通りとなります。

手順

以下は、Windowsにおける対応手順になります。また、RubyはRubyInstallerでインストールされていることを前提とします。

まず、<Rubyインストールディレクトリ>\lib\ruby\<Rubyバージョン>\rubygems フォルダへ移動します。例えば、Ruby 2.7の場合は次の通りとなります。

c:\Ruby27-x64\lib\ruby\2.7.0\rubygems\ssl_certs

このディレクトリを開くと、配下に次のディレクトリを確認することが出来ます。

index.rubygems.org
rubygems.global.ssl.fastly.net
rubygems.org

上記3ディレクトリに対して、UTMやSASEが発行しているCA証明書を配置します。拡張子は .pem とします。

CA証明書を各ディレクトリへ配置後、再度 gem install を実行し、結果を確認します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?