requires=
classes=
methods=Net=HTTP/i.use_ssl=3f.net.https,Net=HTTP/i.use_ssl=3d.net.https,Net=HTTP/i.ssl_timeout.net.https,Net=HTTP/i.ssl_timeout=3d.net.https,Net=HTTP/i.peer_cert.net.https,Net=HTTP/i.key.net.https,Net=HTTP/i.key=3d.net.https,Net=HTTP/i.cert.net.https,Net=HTTP/i.cert=3d.net.https,Net=HTTP/i.ca_file.net.https,Net=HTTP/i.ca_file=3d.net.https,Net=HTTP/i.ca_path.net.https,Net=HTTP/i.ca_path=3d.net.https,Net=HTTP/i.verify_mode.net.https,Net=HTTP/i.verify_mode=3d.net.https,Net=HTTP/i.verify_callback.net.https,Net=HTTP/i.verify_callback=3d.net.https,Net=HTTP/i.verify_depth.net.https,Net=HTTP/i.verify_depth=3d.net.https,Net=HTTP/i.cert_store.net.https,Net=HTTP/i.cert_store=3d.net.https,Net=HTTP/i.ssl_version.net.https,Net=HTTP/i.ssl_version=3d.net.https,Net=HTTP/i.ciphers.net.https,Net=HTTP/i.ciphers=3d.net.https
sublibraries=
is_sublibrary=false
category=Network

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

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


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


=== Example

簡単な例を挙げます。
verify_mode に指定する定数に関しては [[c: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
  }
