2
我想一個驗證SSL證書添加到我的Java應用程序。 Java應用程序充當轉換服務。它在特定的URL上監聽端口。它通過字符串查找和替換來轉換請求的正文。 Java應用程序然後POST,將數據轉換爲內部服務。驗證的SSL證書異常觸發異常,當Java應用程序運行
我添加了一個自簽名的SSL證書的應用程序。然而,這不太好。在SoapUI中它工作正常。當我嘗試使用basicHttpBinding的和HttpWebRequest的C#應用程序調用它,我得到以下錯誤:
Unhandled Exception: System.Net.WebException:
The underlying connection was closed:
Could not establish trust relationship for the SSL/TLS secure channel. --->
System.Security.Authentication.AuthenticationException: The remote certificate
is invalid according to the validation procedure.
所以我刪除了證書,並加入了簽名的證書。此證書當前附加到java應用程序正在偵聽的域。當我嘗試和運行Java應用程序,我得到以下異常:
java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing
implementation (algorithm: Default, provider: SunJSSE, class:
com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
Java代碼,設置密鑰和信任存儲區:
loadConfig();
loadTransforms();
// Set Trust/Key stores
System.setProperty("javax.net.ssl.keyStore", keyFile);
System.setProperty("javax.net.ssl.keyStorePassword", keyPassword);
System.setProperty("javax.net.ssl.trustStore", keyFile);
System.setProperty("javax.net.ssl.trustStorePassword", keyPassword);
TransformationServer server = new TransformationServer();
server.runServer(mode);
存儲證書的密鑰和信任存儲中。有沒有人有任何想法?
什麼是「已驗證SSL證書」? – EJP
那麼我不知道你是否稱它爲已驗證。但它是由第三方驗證(或驗證)的非自簽名證書。 –
我不明白。您在您的問題中聲明它是自簽名的。現在你說(我認爲)它不是。證書可以由證書頒發機構*簽名*,如果這就是你的意思。請澄清你的問題。 – EJP