2012-07-16 104 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和下面,這只是[...]應該發送一個證書消息[...]。)