Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > net/httpsライブラリ

library net/https

要約

net/http に SSL/TLS 拡張を実装するライブラリです。

Net::HTTP を再オープンし、SSL/TLS 拡張を追加します。

デフォルトパラメータについて

net/https は OpenSSL::SSL::SSLContext#set_params で SSLContext を初期化します。そのため 指定されなかったパラメータは OpenSSL::SSL::SSLContext::DEFAULT_PARAMS の値で初期化されます。 Net::HTTP#ca_file=Net::HTTP#ca_path=Net::HTTP#cert_store も設定しなかった場合は OpenSSL::SSL::SSLContext::DEFAULT_CERT_STORE が証明書ストアとして用いられます。

Example

簡単な例を挙げます。 verify_mode に指定する定数に関しては OpenSSL::SSL を参照してください。 必ず use_ssl = true を呼ばなければいけないところに注意してください。

require 'net/https'
https = Net::HTTP.new('www.example.com',443)
https.use_ssl = true
https.ca_file = '/usr/share/ssl/cert.pem'
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
https.verify_depth = 5
https.start {
  response = https.get('/')
  puts response.body
}

以下は HTTPS プロクシ経由でアクセスする例です。 プロクシ経由でも通信路は暗号化されます。

require 'net/https'
proxy_addr = 'proxy.example.com'
proxy_port = 3128
https = Net::HTTP::Proxy(proxy_addr, proxy_port).new('www.example.com',443)
https.use_ssl = true
https.ca_file = '/usr/share/ssl/cert.pem'
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
https.verify_depth = 5
https.start {
  response = https.get('/')
  puts response.body
}

追加・再定義されるメソッド

Net::HTTP#ca_file Net::HTTP#ca_file= Net::HTTP#ca_path Net::HTTP#ca_path= Net::HTTP#cert Net::HTTP#cert= Net::HTTP#cert_store Net::HTTP#cert_store= Net::HTTP#key Net::HTTP#key= Net::HTTP#peer_cert Net::HTTP#ssl_timeout Net::HTTP#ssl_timeout= Net::HTTP#use_ssl= Net::HTTP#use_ssl? Net::HTTP#verify_callback Net::HTTP#verify_callback= Net::HTTP#verify_depth Net::HTTP#verify_depth= Net::HTTP#verify_mode Net::HTTP#verify_mode=