Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > opensslライブラリ > OpenSSL::SSL::SSLContextクラス > client_cert_cb=
client_cert_cb=(cb)
[permalink][rdoc]OpenSSL::SSL::SSLContext#cert= でクライアント証明書を セットしていなかった場合にサーバからクライアント証明書の要求が来たときに 呼びだされるコールバックオブジェクトを設定します。
コールバックに渡される引数は以下のように
proc{|sslsocket| ... }
1つで、利用している OpenSSL::SSL::SSLSocket オブジェクトが渡されます。そのオブジェクトから必要な証明書を見つけるのに 必要な情報を取得します。 コールバックはクライアント証明書(OpenSSL::X509::Certificate) とその秘密鍵(OpenSSL::PKey::PKey)のペアの配列を返さなければなりません。
証明書と鍵が見付からない場合は nil を返してください。 また、このコールバック内で例外が発生すると、適当な証明書が見付からなかったと 判断されます。このとき例外は OpenSSL のライブラリによって握り潰されて しまいます。
デフォルトは nil で、コールバックなしを意味します。この場合は クライアント証明書は利用されません。
このメソッドはクライアント側でのみ意味を持ちます。
例
ctx = OpenSSL::SSL::SSLContext.new(ssl_method) ctx.client_cert_cb = proc{|sslsocket| # sslsocket からコネクションの情報を取り出し、 # クライアント証明書(cert)とその秘密鍵(privkey)を探しだす [cert, privkey] }
[SEE_ALSO] OpenSSL::SSL::SSLContext#client_cert_cb