2012-05-17 64 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

不,沒有簡單的方法,因爲相互可接受性取決於客戶端和服務器的配置,而且遠遠超出了他們使用的證書。

例如,證書有一個「策略」,用於標識它們的實施和策略。每一方都可以擁有包含一系列可接受策略的本地配置。還有很多其他的例子。