ruby XMLRPC の SSL 接続で文句言われないようにする

ruby XMLRPC の SSL 接続で文句言われないようにする

上記のままだと以下のような文句を言われる。

warning: peer certificate won't be verified in this SSL session

要するに証明書の検証してないわけなんだが、XMLRPC::Client にルート証明機関の証明書を指定する方法がないのでパッチあてた。いろいろ作るのが面倒なので内部でかかえていた Net/HTTPS オブジェクトをそのままプロパティとして公開しただけ。

diff -u /usr/local/lib/ruby/1.8/xmlrpc/client.rb  /usr/local/lib/ruby/1.8/xmlrpc/client.rb.bak                                               [~/tdiary/dailyupdate]
=== /usr/local/lib/ruby/1.8/xmlrpc/client.rb    2008-03-01 20:01:35.000000000 +0900
+++ /usr/local/lib/ruby/1.8/xmlrpc/client.rb.bak        2008-03-01 19:58:17.000000000 +0900
@@ -385,7 +385,6 @@
     # Cookie support
     attr_accessor :cookie

-    attr_reader :http

     attr_reader :timeout, :user, :password

getUserBlogs.rb 改: ブログ情報の取得 SSLの検証付

require 'xmlrpc/client'

uri = "https://storage.msn.com/storageservice/MetaWeblog.rpc"
username = "kamiyn"
password = "********"
client = XMLRPC::Client.new2( uri )
client.http.ca_file = "/usr/local/share/curl/curl-ca-bundle.crt"
client.http.verify_mode = OpenSSL::SSL::VERIFY_PEER
client.http.verify_depth = 5
blogger = client.proxy("blogger")
begin
        appkey = "ignored" # ignored
        result = blogger.getUsersBlogs appkey, username, password
        p result
rescue XMLRPC::FaultException => e
        puts "fault #{e.faultCode}: #{e.faultString}"
end
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。