1

サーバー用とクライアント用の2つの.p12ファイルが、両側で承認(クライアント承認を含む)が必要なSSLハンドシェイクで相互に受け入れ可能かどうかを確認する簡単な方法はありますか?これらの各.p12ファイルには、信頼マネージャーとキーマネージャーの両方が含まれています。

特に、サーバー側でこのようなエラーが発生する原因は何でしょうか。

SEND TLSv1 ALERT:  fatal, description = bad_certificate
WRITE: TLSv1 Alert, length = 2
called closeSocket()
handling exception: javax.net.ssl.SSLHandshakeException: null cert chain
4

2 に答える 2

3

TLSハンドシェイクでは、最初のクライアントが受信したサーバーの証明書を確認し、その後、証明書のアルゴリズムやその他のパラメーターに応じて、自分の証明書を送信します。あなたの状況では、サーバーがクライアントの証明書を受け取り、それを拒否したようです。おそらく、証明書チェーンが空であるためです(つまり、クライアントの証明書は自己署名されていますか?)。

于 2012-05-17T15:09:58.840 に答える
1

いいえ、簡単な方法はありません。相互の受け入れ可能性はクライアントとサーバーの構成に依存し、それはそれらが使用する証明書をはるかに超えているためです。

たとえば、証明書には、発行されたプラクティスとポリシーを識別する「ポリシー」があります。各パーティは、一連の受け入れ可能なポリシーを含むローカル構成を持つことができます。他にも多くの例があります。

于 2012-05-17T16:32:21.593 に答える