SO やブログ記事の周りで私が見たものの多くは、
- デフォルトでは、Net::HTTP はピア SSL 証明書を検証しません。
- Net::HTTP にピアを検証させるには、それも行う必要があり、信頼できる機関を含む CA 証明書ファイルを提供する必要があります。
ただし、これが完全に必要なわけではないことがわかりました。私のMacには、次のコードがあります
http = Net::HTTP.new('www.google.com', 443)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
http.start do
http.request_get('/') do |response|
puts response.body
end
end
これは機能します。しかし、Ruby はピアを検証するために何を使用しているのでしょうか? の出力を見ると、http.ca_path
両方http.ca_file
とも空白です。
このコードは Ruby 1.9.3p374 で実行しています。おそらく、Ruby が私の Mac でコンパイルされたときに、openssl などから CA 証明書チェーンのデフォルトの場所を取得したのでしょうか?