我們有一臺Windows服務器在Tomcat上運行一個Java Servlet,並且已經設置了一個可信任的根,該根提供了一個當前連接的公鑰和一個爲連接另一臺服務器而提供的導入公共SSL密鑰。添加另一個SSL連接
我們現在需要建立到另一臺新服務器的新SSL連接。我們是否使用當前的密鑰庫並在其中爲此新的附加連接設置另一個受信任的根?或者,我們是否必須爲新連接的新受信任根設置第二個密鑰庫?
在此先感謝
問候
AJFarroll
我們有一臺Windows服務器在Tomcat上運行一個Java Servlet,並且已經設置了一個可信任的根,該根提供了一個當前連接的公鑰和一個爲連接另一臺服務器而提供的導入公共SSL密鑰。添加另一個SSL連接
我們現在需要建立到另一臺新服務器的新SSL連接。我們是否使用當前的密鑰庫並在其中爲此新的附加連接設置另一個受信任的根?或者,我們是否必須爲新連接的新受信任根設置第二個密鑰庫?
在此先感謝
問候
AJFarroll
我假設你正在談論使用客戶證書驗證。
您不一定必須擁有多個密鑰庫。
該聲明的警告是,如果頒發客戶端證書的CA與頒發服務器證書的頒發者相同,則客戶端解析機制將難以確定要使用哪個客戶端證書。
您很可能需要擴展javax.net.ssl.X509ExtendedKeyManager以允許您選擇適當的證書別名。您需要重寫方法String chooseClientAlias(String [] keyType,Principal [] issuers,Socket socket)。傳遞的套接字很可能是javax.net.ssl.SSLSocket的實現。從SSLSocket中,您可以使用javax.net.ssl.SSLSocket.getSession()獲取javax.net.ssl.SSLSession。從中你可以收集你所連接的同伴,並在你的實施中確定適當的證書。
感謝Dave G.我將快速調查以確定兩個服務器證書的CA問題是否相同,然後回覆給您。我還沒有那麼有經驗的SSL。 – AJF
讓我知道你找到了什麼......今天晚上我會在示例會話信息中添加示例代碼 –
這有什麼好運氣?我沒有機會寫出示例代碼。 –