rspec実行時 OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate)

やりたいこと

bundle exec rspec

テストを正常に走らせたい。


エラー内容

 OpenSSL::SSL::SSLError:
       SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate)

OpenSSL::SSL::SSLErrorが発生し、bundle exec rspecができない。


調査

OpenSSL::SSL::SSLError railsで検索

blog.takuros.net

komiyak.hatenablog.jp


原因

  • アップデート等を行うとOpenSSL::SSL::SSLErrorが発生してしまう

  • Ruby(Net::HTTP?)が SSL証明書を見つけることができていない。


解決策

証明書を検証したい場合: https.verify_mode = OpenSSL::SSL::VERIFY_PEER を追加する

config/application.rb

if Rails.env.test?
  OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
end

注:これは、本番環境では実行しないことです。


参考

stackoverflow.com

tech.nitoyon.com