[ruby-list:46577] SSL通信のサーバ相互認証

From: Yoshihiro Kawano <kawano@...>
Date: 2009-11-30 06:02:35 UTC
List: ruby-list #46577
ruby-list ML の皆様

インテック・ネットコアの河野義広と申します。
初めて投稿させていただきます。よろしくお願いします。

現在、Ruby on Railsで開発中のシステムにおいて、サーバ間
のSSL通信の認証を行う部分で苦戦しています。ここでは、Ruby
のnet/httpsクラスを利用し、外部サーバとのSSL通信(https)
を行っています。

ここで、外部サーバとの相互認証を実現したいのですが、現在は
送信側での認証しかできていません。通信相手に対して、自分の
サーバ証明書をクライアント証明書として利用しようとしている
ためか、下記のようなエラーメッセージが出力されてしまいます。

解決策をご存じの方がおりましたらご教授いただけますでしょうか。
その他、必要な情報は以下のとおりです。よろしくお願いします。
長文失礼いたしました。

□ やりたいこと
・net/httpsでのサーバ間の相互認証

□ 現状
・送信側での通信相手の認証は可能
・受信側での通信相手の認証はできていない

□ 環境
・Ruby 1.8.5
・Ruby on Rails 2.1.0
・RubyGems 1.2.0
・Apache 2.2
・MySQL 5.0

□ ソースコード
  # SSL通信の設定
  https = Net::HTTP.new(server,port)
  https.use_ssl = true

  # CA証明書
  https.ca_file = "ca_file.crt"
  https.verify_mode = OpenSSL::SSL::VERIFY_PEER
  https.verify_depth = 5

  # クライアント証明書(サーバ証明書)
  https.cert = OpenSSL::X509::Certificate.new(File.read("/etc/pki/tls/certs/server.pem"))

  # クライアントの鍵(サーバ秘密鍵)
  https.key = OpenSSL::PKey::RSA.new(File.read("/etc/pki/tls/certs/server.key"))

□ エラーメッセージ
OpenSSL::SSL::SSLError (sslv3 alert unsupported certificate):
※ log/development.log より

-- 
/////////////////////////////////////////////
株式会社インテック・ネットコア
ネットワークプラットフォーム研究開発グループ
河野義広 E-mail: kawano@inetcore.com
/////////////////////////////////////////////

In This Thread

Prev Next