From: Yui NARUSE Date: 2010-01-09T20:34:23+09:00 Subject: [ruby-dev:40003] [Feature #2579] Net::HTTP.start("www.ruby-lang.org", use_ssl: true) で SSL 利用を可能に Feature #2579: Net::HTTP.start("www.ruby-lang.org", use_ssl: true) で SSL 利用を可能に http://redmine.ruby-lang.org/issues/show/2579 起票者: Yui NARUSE ステータス: Open, 優先度: Normal 従来、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 証明書が取得できますから、 そういうのに入れ替えた方がいいのではないでしょうか。 ---------------------------------------- http://redmine.ruby-lang.org