簡體   English   中英

如何將安全連接到遠程Websphere服務器?

[英]How i can connect secure to remote websphere server?

我使用AdminClient來安全連接到本地Websphere服務器:

    java.util.Properties props = new java.util.Properties();
    props.setProperty(AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP);
    props.setProperty(AdminClient.CONNECTOR_HOST, "localhost");
    props.setProperty(AdminClient.CONNECTOR_PORT, "8880");
    props.setProperty(AdminClient.CONNECTOR_SECURITY_ENABLED, "true");
    props.setProperty(AdminClient.USERNAME, "admin");
    props.setProperty(AdminClient.PASSWORD, "111111");

    props.setProperty("javax.net.ssl.trustStore", "C:/WAS/AppServer/profiles/AppSrv01/etc/DummyClientTrustFile.jks");
    props.setProperty("javax.net.ssl.keyStore", "C:/WAS/AppServer/profiles/AppSrv01/etc/DummyClientKeyFile.jks");
    props.setProperty("javax.net.ssl.trustStorePassword", "WebAS");
    props.setProperty("javax.net.ssl.keyStorePassword", "WebAS");
    client = AdminClientFactory.createAdminClient(props);

工作完美。 但是,如果我嘗試安全連接到遠程URL(IP或主機名),則此代碼不起作用,例如SSL例外。 我認為,證書文件中的問題:

  props.setProperty("javax.net.ssl.trustStore", "C:/WAS/AppServer/profiles/AppSrv01/etc/DummyClientTrustFile.jks");
    props.setProperty("javax.net.ssl.keyStore", "C:/WAS/AppServer/profiles/AppSrv01/etc/DummyClientKeyFile.jks");

我如何使用JAVA從遠程服務器中檢索此證書並與AdminClient建立安全連接?

您將需要提取遠程簽名者證書並將其導入本地WebSphere信任密鑰庫中。 為此,您可以使用ikeyman實用程序打開遠程密鑰庫並導出證書,然后使用相同的實用程序將證書導入本地Websphere信任庫。

SSL異常應該提供有關從遠程服務器提取並導入到本地信任存儲區中需要哪些簽名者證書的線索。

看看http://www-01.ibm.com/software/webservers/httpservers/doc/v1312/ibm/9atikeyu.htm (“導出密鑰”和“導入密鑰”部分)

同樣,這里已經解決了類似的問題:

告訴Java接受自簽名的ssl證書

我建議不要將其放入您的代碼中,而是將WebSphere證書添加到Glassfish受信任的證書中。 因此,您需要執行以下步驟:

  • 從WebSphere提取證書-最簡單的方法是使用瀏覽器通過https訪問WAS上運行的任何應用程序,並將證書保存到文件中。
  • 使用keytool將該證書導入到Glassfish可信存儲中。 它應該是domains / domain1 / config / cacerts.jks(我不是Glassfish專家,所以路徑可能不同)。

然后,您不再需要設置所有這些javax.net.ssl.*屬性。

暫無
暫無

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

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