平文でパスワード送るのは避けたいので改造
...コンテンツは全て平文だから余り意味はないが...
$ diff -uNr backupmixi/mixi.rb backupmixi_s/mixi.rb | lv --- backupmixi/mixi.rb 2005-08-31 15:24:08.000000000 +0900 +++ backupmixi_s/mixi.rb 2005-12-07 00:00:00.000000000 +0900 @@ -33,6 +33,7 @@ # 基本URL MIXI_URL = 'http://mixi.jp/' + MIXI_URL_S = 'https://mixi.jp/' # ログイン def login(email, password, proxy='', wait=2.0, cookie_store='cookie.dat') @@ -40,9 +41,12 @@ @nowait_get_count = 10 @retry_sleep_time = 5 @clnt = HTTPAccess2::Client.new(proxy=='' ? nil : proxy) + @clnt.ssl_config.set_trust_ca('mixi.pem') + @clnt.ssl_config.verify_depth = 4 +# @clnt.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE @clnt.set_cookie_store(cookie_store) - r = post('login.pl', "email=#{email}&password=#{password}&next_url=/home.pl") + r = post_s('login.pl', "email=#{email}&password=#{password}&next_url=/home.pl") (r !~ /alt\.gif/) and (r =~ /check\.pl/) # ログイン成否判定 end @@ -85,6 +89,9 @@ filter( @clnt.post("#{MIXI_URL}#{path}", param).content ) end + def post_s(path, param) + filter( @clnt.post("#{MIXI_URL_S}#{path}", param).content ) + end # URLを指定してイメージファイルを取得 def get_img(url) # ウェイトを入れず、各種の変換も行わない。
mixi.pemの作成
ieにてhttps://mixi.jp/にアクセスした状態で錠前アイコンから
[証明書]-[証明のパス]-対象のhostの一段上を選択
[証明書の表示]-[全般]-[証明]-[ファイルにコピー]-[PKCS #7 証明書(P7B)]
[証明のパスにある証明書を可能であればすべて含む]:チェック-[エクスポート]
エクスポートされたPKCS #7証明書(例mixi.P7B)をopensslにて変換
$ openssl pkcs7 -inform DER -outform PEM -print_certs -in mixi.p7b -out mixi.pem
作成途中verify無しでのテスト時(ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE)に
at depth 1 - 20: unable to get local issuer certificate
/usr/lib/ruby/1.8/http-access2.rb:939:in `connect': certificate verify failed (OpenSSL::SSL::SSLError)
と言われまくっていた原因は不明
エラー発生時と同等のコードに戻しても再現しなくなった
うーむ途中..ruby1.6を削除したことは関係ないとは思うが...