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#ciphers
Net::HTTP#ciphers=
Net::HTTP#key
Net::HTTP#key=
Net::HTTP#peer_cert
Net::HTTP#ssl_timeout
Net::HTTP#ssl_timeout=
Net::HTTP#ssl_version
Net::HTTP#ssl_version=
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=