2025年10月9日木曜日

Ruby OpenSSL::SSL::SSLError - SSL_connect returned=1 errno=0 対策

Ruby OpenSSL::SSL::SSLError - SSL_connect returned=1 errno=0 対策

概要

macOS + openssl@3.6.0 で発生します
回避策を紹介します

エラー全文

2025-10-09 10:48:58 - OpenSSL::SSL::SSLError - SSL_connect returned=1 errno=0 peeraddr=[2606:4700::6810:190e]:443 state=error: certificate verify failed (unable to get certificate CRL) (OpenSSL::SSL::SSLError):

環境

  • macOS 15.7.1
  • Ruby 3.4.4
  • openssl 3.6.0

回避策

  • vim libs/ssl_patch.rb
# frozen_string_literal: true

require 'openssl'

# 開発環境限定で SSL 検証をスキップする
if ENV['MODE'] == 'dev'
  s = OpenSSL::X509::Store.new.tap(&:set_default_paths)
  OpenSSL::SSL::SSLContext.send(:remove_const, :DEFAULT_CERT_STORE)
  OpenSSL::SSL::SSLContext.const_set(:DEFAULT_CERT_STORE, s.freeze)
end

あとはメインなどの先頭で

require './libs/ssl_patch'

パッチなので可能な限り先に読み込むようにしてください

最後に

SSL 関係はいろいろとハックしなければいけないケースが多いので辛いです

参考サイト

0 件のコメント:

コメントを投稿