2

検証済みの SSL 証明書を Java アプリに追加しようとしています。Java アプリは変換サービスとして機能します。特定の URL のポートでリッスンします。文字列の検索と置換により、リクエストのボディを変換します。その後、Java アプリはデータを内部サービスに変換する POST を実行しました。

アプリに自己署名 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);

証明書は、キー ストアとトラスト ストア内に格納されます。誰にもアイデアはありますか?

4

1 に答える 1