Ruby 2.0.0 リファレンスマニュアル > ライブラリ一覧 > drb/sslライブラリ
DRb のプロトコルとして SSL/TLS 上で通信する drbssl が使えるようになります。
require 'drb/ssl' obj = '' DRb::DRbServer.new( 'drbssl://localhost:10000', obj, {:SSLCertName => [["CN","fqdn.example.com"]]})
DRb::DRbServer.new や DRb.#start_service が "drbssl" スキームを受け入れるようになります。 また、DRb::DRbObject.new_with_uri でも drbunix スキームが使えるようになります。
サーバを起動するときは以下のオプションが追加で利用できます。 詳しくは、対応するメソッドや OpenSSL::SSL::SSLContext クラス自体のドキュメント、 その他 openssl の各種ドキュメントを参照してください。
サーバが自分自身を証明するための証明書を指定します。 OpenSSL::SSL::SSLContext#cert= で利用します。 デフォルトは nil (指定なし)です。
:SSLCertificate で指定した証明書に添付されている公開鍵 に対応する秘密鍵を指定します。 OpenSSL::SSL::SSLContext#key= で利用します。 デフォルトは nil (指定なし)です。
クライアント証明書を要求するときにヒント情報として送る CA のリストを指定します。 OpenSSL::SSL::SSLContext#client_ca= で利用します。 デフォルトは nil (指定なし)です。
接続相手の証明書の検証のために用いる信頼済みCA証明書 ファイルのディレクトリパスを指定します。 OpenSSL::SSL::SSLContext#ca_path= で利用します。 デフォルトは nil (指定なし)です。
接続相手の証明書の検証のために用いる信頼済みCA証明書 ファイルのパスを指定します。 OpenSSL::SSL::SSLContext#ca_file= で利用します。 デフォルトは nil (指定なし)です。
一時的 DH 鍵を生成するためのコールバックを指定します。 OpenSSL::SSL::SSLContext#tmp_dh_callback= で利用します。 デフォルトは nil (指定なし)です。
証明書の検証法を指定します。 OpenSSL::SSL::SSLContext#verify_mode= で利用します。 デフォルトは OpenSSL::SSL::VERIFY_NONE (検証しない)です。
証明書チェインの検証の最大深さを指定します。 OpenSSL::SSL::SSLContext#verify_depth= で利用します。 デフォルトは nil (OpenSSL のデフォルトの深さを利用)です。
検証をフィルタするコールバックを指定します。 OpenSSL::SSL::SSLContext#verify_callback= で利用します。 デフォルトは nil です。
接続相手の証明書の検証のために使う、信頼している CA 証明書を 保持する証明書ストアを指定します。 OpenSSL::SSL::SSLContext#cert_store= で利用します。 デフォルトは nil です。
:SSLCertificate を省略した場合に生成される証明書の 保有者として利用される名前を指定します。 生成される証明書は自己署名されているので、証明書の発行者としても この名前が利用されます。 OpenSSL::X509::Name.new に渡されるので、 [["CN","fqdn.example.com"]]という形式の配列を渡す必要があります。 デフォルトは nil です。
:SSLCertificate を省略した場合に生成される証明書の コメント文字列を指定します。 デフォルトは "Generated by Ruby/OpenSSL" です。
オプションで :SSLCertificate と :SSLPrivateKey のペアを指定しなかった場合は openssl を用いて鍵対と自己署名証明書を生成し、それが利用されます。
安全性が必要なく、暗号通信できれば十分であるような 場合には :SSLCertificate と :SSLPrivateKey を省略し、:SSLVerifyMode は OpenSSL::SSL::VERIFY_NONE を指定しておけば十分でしょう。
高水準の安全性が必要な場合は drb 以外の選択肢を検討してください。