簡體   English   中英

有沒有辦法以 2 路 ssl 連接從 java 代碼中恢復客戶端證書的通用名稱?

[英]Is there a way to recover the common name of a client certificate from java code in a 2 way ssl connection?

我們有一個 weblogic 服務器配置為在建立 ssl 與客戶端的 web 服務解決方案的連接時需要客戶端證書。 ssl 握手完美地工作,因為我們已經配置了所有需要的東西。

現在,在連接之后,我們確實收到了一個 soap 請求,其中客戶端 ID 是該請求 soap 的字段之一。 我們需要做的是根據用於在我們的服務器內連接的客戶端證書的通用名稱檢查此 ID,以保證交易。 這對我們來說非常重要,因為這是一項銀行交易,涉及大量資金,我們需要避免欺詐。

所以:有沒有辦法從使用 weblogic 10.3.3 服務器的服務器上運行的 java 代碼恢復用於建立 2 路 ssl 連接的客戶端證書的公用名?

[]s

可以使用HttpServletRequest.getAttribute(String)方法調用從傳入的 Servlet 請求中讀取客戶端的證書。 名為javax.servlet.request.X509Certificate的屬性由 servlet 容器在創建請求 object 的實例以供 servlet/webservice 處理時填充。

然后可以從 X500Principal object 獲得證書的 DN,通過getX500Principal方法調用從證書 object 獲得。 這不會提供 CN,但會以指定格式為您提供完整的專有名稱; 這可以被解析以提供 CN

就訪問 ServletRequest object 而言,可以對 JAX-WS web 服務進行編程以讀取允許訪問底層 HttpServletRequest object 的MessageContext

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM