2009-06-02 208 views
0

該場景是圍繞從Mirth內部調用外部SSL SOAP Web服務。 Web服務需要SSL/TLS連接以及客戶端證書。歡樂:使用客戶端證書調用SSL SOAP Web服務

其意圖是使用內置的SOAP發件人目標來調用遠程安全Web服務,並以某種方式包含該客戶端證書。

我知道您首先需要將該客戶端證書安裝到Java運行時。這可能位於Java運行時的證書存儲區或Jetty證書庫中。

平臺:

  • 的Windows 2003 SP2
  • 歡樂1.8
  • 的Java jre1.5.0_09

問題:什麼樣的配置步驟(歡樂,JRE證書存儲等。)你是否建議在調用由SSL保護的Web服務時成功地讓Mirth SOAP Sender包含客戶端證書(* .cer)?

回答

1

當調用SOAP Web服務時,Mirth 1.8不能發送客戶端證書。

2

如果設置了某些系統屬性,則Java運行時(或更具體而言,Sun JSSE提供程序)將呈現客戶端證書。您可以閱讀JSSE Reference Guide,中的詳細信息,但重要的屬性是javax.net.ssl.keyStorejavax.net.ssl.keyStorePassword

這種方法有一些缺點。首先,將密鑰存儲區密碼設置爲系統屬性,使其可以在該進程中運行的任何代碼訪問—,但如果安裝了SecurityManager,則可以控制該密碼。其次,這些設置將用於通過「默認」SSLContext創建的任何SSL套接字。如果您需要針對不同端點的不同憑據,則需要特定的Mirth解決方案。

問題中沒有指定起始點,但如果從頭開始,最簡單的方法是創建一個新的Java密鑰庫(「JKS」格式)並生成一個新的密鑰對和一個CSR。將CSR發送到CA並取回證書後,將其導入到同一個密鑰存儲區。該關鍵商店已準備好使用。

如果證書已經可用,它很可能與PKCS  #12格式(.p12或.pfx文件)中的相應私鑰一起存儲。這些可以直接由Java應用程序使用,但javax.net.ssl.keyStoreType屬性需要設置爲"PKCS12"

0

我在這裏遲了一點,但實際上它有可能。通過向JVM發送一些配置參數,您可以使底層SOAP引擎切換到HTTP並提供適當的證書。

指這個問題上哪些參數來配置VM

Java HTTPS client certificate authentication

,你會發現有相當多的事情要照顧設定細節。一般情況下,只要您正確配置了證書,HTTPs和客戶端身份驗證就會「正常工作」。但是有些服務器對B2B風格的客戶端並不那麼友好,所以你必須小心。

使用JDK 6_21和對證書進行的一些調整我可以讓其中一臺服務器運行起來,但在我們這邊需要花費大約15分鐘才能在服務器上正確配置,這對我們來說是漫長而痛苦的。

這裏是另一個問題,解決這個問題(客戶端認證對不友好的服務器)。

Client SSL authentication causing 403.7 error from IIS