2012-07-16 105 views
1

下面的信息显示了我的ssl连接到我的ldap服务器之一的线鲨鱼日志。在这个客户端证书长度为零。请让我知道这是什么意思。是否因为缺乏客户端身份验证?对于相互认证,是否必须包含客户端证书?TLS双向认证

329 SSLv2 Client Hello 
332 TLSv1 Server Hello, Certificate, Certificate Request, Server Hello Done 
334 TLSv1 Certificate, Client Key Exchange 
336 TLSv1 Change Cipher Spec, Encrypted Handshake Message 
337 TLSv1 Change Cipher Spec, Encrypted Handshake Message 

在帧332显示完整的证书信息和334显示证书长度:0 帧334客户端密钥交换包含足够的信息传递预主秘密。

回答

6

Certificate Request消息表示服务器请求客户端证书(强制与否)。

客户响应发送的空的Certificate消息意味着客户端没有找到合适的客户端证书来使用(或者选择不使用它)。

服务器是否要继续使用此连接取决于其配置。客户端证书认证可以是可选的。

此行为在TLS specification描述:

该消息只有当服务器发送请求 证书。如果没有合适的证书可用,则客户端必须发送不包含 证书的证书消息。也就是说,certificate_list结构的长度为 。如果客户端没有发送任何证书,则服务器可以自行决定是否继续握手而不用 客户端身份验证,或者响应致命handshake_failure 警报。

(这是从TLS 1.2规范,在TLS 1.1和下面,这只是[...]应该发送一个证书消息[...]。)