[Ruby, Mac] Net::HTTPでSSL使用時にcertificate verify failed

Mac + OpenSSL (homebrew) + rbenvという環境でNet::HTTP使ってSSLでの通信をしようと思ったらエラーがでた。

net/http.rb:917:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

たとえば、こんな感じのコードでhttpsなURLにアクセスする場合。

require 'net/https'
require 'uri'

url = URI.parse('https://www.google.co.jp/')
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
https.start do |http|
  res = http.get('/')
  puts res.body
end

そういえば前にもこのエラー見たなぁとも思いながら調べてみる。
ようするに、クライアント側にバンドルされるべきの証明書がないのが原因らしい。
“[Ruby, Mac] Net::HTTPでSSL使用時にcertificate verify failed” の続きを読む