2016-07-04 7 views
3

OpenSSL Doc:Client_cert_cb()は完全な証明書チェーンを返すことができず、クライアント証明書を1つだけ返すことができます。証明書チェーン付きのSSL_CTX_set_client_cert_cb

私の場合、証明書チェーンを返却/設定したいが、それがどのように実行可能かはわからない。どのように行うにはどのような例をお待ちですか? OpenSSLのSSL_CTX_set_client_cert_cbコマンドのマニュアルページで

答えて

1

、それは言う、あなたが質問に言ったように、client_cert_cb() cannot return a complete certificate chainしかし、それはまた、問題の回避策を述べて:

BUGS

client_cert_cbを( )は完全な証明書チェーンを返すことはできません。 は1つのクライアント証明書のみを返すことができます。チェーンの長さが で2の場合は、TLS 標準に従ってルートCA証明書を省略することができます。したがって、標準準拠の回答を サーバーに送信できます。より長いチェーンの場合、クライアントは完全チェーン を送信する必要があります(ルートCA証明書を省略することもできます)。これは SSL_CTXオブジェクトの場合にのみ利用可能なadding the intermediate CA certificates into the trusted certificate store for the SSL_CTX object (resulting in having to add CA certificates that otherwise maybe would not be trusted), or by adding the chain certificates using the SSL_CTX_add_extra_chain_cert functionによって達成され、したがって、おそらく を1つのクライアント証明書に適用して、コールバックのコンセプトを の機能にすることができます証明書)が疑わしい。

これはあなたの状況に当てはまりますか?


EDIT

あなたはSSL_CTX_add_extra_chain_cert機能を使用してチェーン証明書を追加することができます。見積もりに記載されているとおり、ルートCA証明書を送信する必要はありません。

+0

中間CA証明書をSSL_CTXオブジェクトの信頼できる証明書ストアに追加するにはどうすればよいですか?ルートCAはどこに設定されますか? – user3027786

+0

@ user3027786あなたのコメントに関する私の答えを更新しました。コード内のエラーを簡単に見つけられるように、試行錯誤したいくつかの方法を提示できれば非常に役に立ちます。 – Makif

関連する問題