2013-11-26 51 views
0

對WSO2 ESB可以使用相互驗證(客戶端SSL證書)嗎? (我不是在談論WS-Security。)具有相互驗證的WSO2 ESB代理後端

我看到可以將自定義密鑰庫添加到ESB,但我找不到任何有關如何指定連接到特定的客戶端密鑰時使用的任何信息後端。

回答

3

是的。您可以啓用ESB代理服務的相互身份驗證。在這裏你要做小配置來啓用所有代理服務的相互認證。您可以編輯axis2.xml文件,並更改以下屬性爲「需要」

<parameter name="SSLVerifyClient">require</parameter> 

更多細節,你可以找到here。但是,如果您要爲給定的一組代理服務啓用相互身份驗證,則還需要執行更多操作。更多詳細信息,請參見here。 ESB中的舊版本存在問題。因此你需要一些補丁來安裝。但有4.7.0和4.8.0(下一版本)。已經修復。

+0

謝謝你的回答!我將用4.8.0測試 – Janhouse

+0

您能否介紹一下如何選擇特定客戶端證書以用於特定端點?這些帖子不太清楚。 – Janhouse

+0

其實這裏我們不能說有這個證書的用戶可以訪問這些代理服務。這裏沒有這樣的授權......一個請求與證書一起發送,ESB將驗證證書(通過ESB的信任存儲進行驗證) – Asela

1

在ESB和後端服務器之間建立相互SSL認證實際上很簡單。這也需要配置後端服務器。由於ESB在啓動與後端的連接時充當「客戶端」,所以後端服務器負責請求「相互」SSL而不是單向SSL。看到這個很好的相互SSL文章供參考[1]。

爲了成功地使用相互SSL與後端服務器,

  1. 負載後端服務器的公鑰證書導入到默認 信任,它位於:資料庫/資源/安全/客戶端-truststore.jks(就是這樣! 這是WSO2 ESB端必需的唯一更改。)
  2. 將來自WSO2密鑰庫的公共證書加載到後端服務器的密鑰存儲庫 中。
  3. 配置後端服務器以請求相互SSL。

如果您使用的是CA證書而不是默認的自簽名證書,請跳過步驟2

乾杯, 科林

[1] http://www.codeproject.com/Articles/326574/An-Introduction-to-Mutual-SSL-Authentication

+0

這是關於SSL客戶端配置的極少數帖子之一。我發現的工作是:a)將客戶端ssl密鑰放入wso2carbon.jks(然後在carbon.xml和axis2.xml中必須指定KeyAlias)b)將axis2中的客戶端密鑰對keystore配置爲customSSLProfiles參數 – gusto2