Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library net/https
library net/https
要約
net/http に SSL/TLS 拡張を実装するライブラリです。
[注意] net/https は RFC2818 の 3.1 に定められた 「サーバーの証明書に記載された身元のチェック」を自動では実行しません。 接続しているはずのサーバのホスト名と証明書に記載されているホスト名が 一致するかをライブラリの使用者が各自実装する必要があります。
http://www.ipa.go.jp/security/rfc/RFC2818JA.html#31
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 プロクシ経由でアクセスする例です。 プロクシ経由でも通信路は暗号化されます。 [[unknown:WWWプロキシにおけるSSLトンネリング|URL:http://www21.ocn.ne.jp/~k-west/SSLandTLS/draft-luotonen-ssl-tunneling-03-Ja.txt]] を参照してください。
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
[added by net/https]Net::HTTP#ca_file=(path)
[added by net/https]-
PEM 形式で保存された CA 証明書ファイルのパスを設定します。 ファイルには複数の CA 証明書が含まれていても構いません。
Net::HTTP#ca_path
[added by net/https]Net::HTTP#ca_path=(path)
[added by net/https]-
PEM 形式で保存された CA 証明書ファイルが存在するディレクトリを設定します。
Net::HTTP#cert
[added by net/https]Net::HTTP#cert=(certificate)
[added by net/https]-
クライアント証明書として OpenSSL::X509::Certificate オブジェクトを設定します。
Net::HTTP#cert_store
[added by net/https]Net::HTTP#cert_store=(store)
[added by net/https]-
サーバ証明書の検証のために使う信頼している CA 証明書のストレージ OpenSSL::X509::Store オブジェクトを設定します。 通常は ca_path=(path) や ca_file=(path) を使います。
Net::HTTP#key
[added by net/https]Net::HTTP#key=(key)
[added by net/https]-
OpenSSL::PKey::RSA オブジェクトか OpenSSL::PKey::DSA オブジェクトを設定します。
Net::HTTP#peer_cert
[added by net/https]-
サーバが送ってきた X.509 証明書を OpenSSL::X509::Certificate オブジェクトとして返します。
Net::HTTP#ssl_timeout
[added by net/https]Net::HTTP#ssl_timeout=(sec)
[added by net/https]Net::HTTP#timeout=(sec)
[added by net/https]Net::HTTP#use_ssl=(bool)
[added by net/https]-
HTTP で SSL/TLS を使うかどうかを設定します。 HTTPS 使う場合は true を代入します。 デフォルトでは false です。 つまり SSL/TLS を有効にするには必ず use_ssl = true を呼ぶ必要があります。
Net::HTTP#use_ssl?
[added by net/https]-
HTTP で SSL/TLS を使うなら true を返します。
Net::HTTP#verify_callback
[added by net/https]Net::HTTP#verify_callback=(proc)
[added by net/https]-
通常のサーバ証明書の検証に加えてさらに適用される Proc オブジェクトを設定します。
Net::HTTP#verify_depth
[added by net/https]Net::HTTP#verify_depth=(depth)
[added by net/https]-
サーバ証明書を検証する時の証明書チェーンの最大の深さを設定します。
Net::HTTP#verify_mode
[added by net/https]Net::HTTP#verify_mode=(mode)
[added by net/https]-
サーバ証明書に対する検証モードを設定します。 OpenSSL::SSL::VERIFY_NONE か OpenSSL::SSL::VERIFY_PEER が設定可能です。 OpenSSL::SSL も参照してください。