2012-05-17 141 views
1

是否有一种简单的方法来检查两个.p12文件(一个用于服务器还是一个用于客户端)彼此之间应该可以彼此相互接受,以便双方都需要授权(包括客户端授权)的SSL握手?每个.p12文件都包含信任管理者和密钥管理者。SSL身份验证

特别是,在服务器端会导致这样的错误?

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

回答

3

在TLS握手的第一客户端验证收到的服务器证书,之后,根据认证算法等参数,发送自己。 在你的情况下,似乎服务器收到客户端证书并拒绝它,可能是因为空的证书链(即客户端证书是自签名?)。

+0

客户端是否发送自己的证书取决于两件事:服务器是否要求证书请求消息,以及他是否拥有证书。它与'证书算法和其他参数'无关。 – EJP

1

不,没有简单的方法,因为相互可接受性取决于客户端和服务器的配置,而且远远超出了他们使用的证书。

例如,证书有一个“策略”,用于标识它们的实施和策略。每一方都可以拥有包含一系列可接受策略的本地配置。还有很多其他的例子。