HTTPSサーバに接続
HTTPSのサイトに接続して内容を取得する、というrubyスクリプトを書く必要があり、調べてみたら、次のサイトがとても参考になりました。
参考というか、ほぼそのまま使える情報だったのですが、もうちょっと具体的にメモしておきます。
httpsのサイト
httpsで公開されているサイトということで、今回は https://www.amazon.com/ につないでみたいと思います。
サイト証明書を取得する
まず、証明書が必要になるので、サイトに接続し、ブラウザの機能で取得します。
Firefoxの場合、ウィンドウ下部に下図のような南京錠アイコンが出ています。
この南京錠アイコンをダブルクリックするとページ情報のセキュリティページが見られます。そこの「証明書を表示...」ボタンを押します。「証明書ビューア」が開きますので、「詳細」タブを押し、その下部にある「エクスポート...」ボタンを押して証明書をエクスポートします。
ファイルの種類を「証明書パスを含む X.509 証明書 (PEM)」にして出力します。今回は、"www_amazon_com.crt"と名付けてスクリプトのあるディレクトリに保存します。
ソースを準備
require 'net/https' https = Net::HTTP.new( 'www.amazon.com', 443 ) https.ca_file = './www_amazon_com.crt' req = Net::HTTP::Get.new('/') https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIFY_PEER https.verify_depth = 15 https.start{ |h| response = h.request( req ) print "Content-type: text/html\n\n" print response.body }
以上で完了です。