Project

General

Profile

Actions

Feature #2579

closed

Net::HTTP.start("www.ruby-lang.org", use_ssl: true) で SSL 利用を可能に

Added by naruse (Yui NARUSE) over 14 years ago. Updated almost 13 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-dev:40003]

Description

=begin
従来、Net::HTTP で https アクセスをするためには

http = Net::HTTP.new("www.ruby-lang.org", 443) # port を指定
http.use_ssl = true # use_ssl を true に
http.verify_mode = OpenSSL::SSL::VERIFY_PEER # デフォルトだと検証してくれないので変更
http.start{|h| } # やっと本題
http.finish # 破棄

などとする必要がありました。

この提案では、Net::HTTP(addr, opt){..} という呼び出し方を追加します。
opt はハッシュで、アクセサのある項目を設定する事が出来ます。

なお、折角の新 API なので、この API を使った場合、verify_mode のデフォルトが VERIFY_PEER になっています。
つまり、この API を用いた場合デフォルトで SSL 署名の有効性を検査するため、
期限切れやオレオレ証明書の場合例外が出ます。

これにより、さっきのは以下のように書けます。
Net::HTTP.start("www.ruby-lang.org", use_ssl: true){|h| }

P.S.
なお、以上の例で用いている www.ruby-lang.org は、現在 SSL 証明書が期限切れのため、
この例を今実行すると検証に失敗して例外が出ます。
今は StartCom とかだと無料で 主要環境でルート証明書が入っている Web サーバ用の SSL 証明書が取得できますから、
そういうのに入れ替えた方がいいのではないでしょうか。
=end


Files

http_start.patch (1.92 KB) http_start.patch naruse (Yui NARUSE), 01/09/2010 08:34 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0