1. ホーム
  2. ruby-on-rails

Windowsで「証明書の検証に失敗しました」を解決するには?

2023-10-09 12:24:14

質問

GoogleのサービスにOAuthするためにsignetを使おうとしています。そして、このエラーが発生します。

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

これらの質問に続いて

解決策としては ca_path を修正するか、あるいは を設定することです。 VERIFY_NONE をSSL用に設定します。 .

ca_path の修正は Linux (ポートインストール) でしか動作しません。 VERIFY_NONE はfaraday用と思われます。

Windows/signetのgemの解決策はないのでしょうか?

どのように解決するのですか?

実は、1つのgemだけでなく、Ruby自体のWindowsでこれを解決するために私が見つけた最良の方法は、次のようにすることです。

  1. ダウンロード https://curl.haxx.se/ca/cacert.pem をc:railsinstaller encert.pemにコピーします。 テキストファイルではなく、.pem ファイルとして保存することを確認してください。
  2. コンピューター -> 詳細設定 -> 環境変数にアクセスします。
  3. システム変数を新規に作成します。

    変数に SSL_CERT_FILE 値を指定します。C:\RailsInstallercacert.pem

  4. Railsサーバーのコマンドプロンプトなど、すべてのコマンドプロンプトを閉じます。

  5. 新しいruby irbプロンプトを起動し、以下を試します。

    $irb>require 'open-uri'
    $irb>open('https://www.gmail.com')
    
    

これですべて問題なく動作するはずです。