GlassFish 3.x で動作するアプリがあります。https 経由でリモート サーバーと通信します。私のcacertsファイルに、サーバー証明書を追加しました。keystore.jks に、リモート サーバーを実行している会社から発行された秘密鍵を追加しました。これはGlassfish 2.xではうまく機能しますが、3.xではリモートサーバーが私が持っているキーが無効であると不平を言い続けます。
キーストアからキーを削除すると、同じエラーが発生します。キーを読み込んでいないかのように、アプリ/コンテナが必要なキーをどのように認識しているのか疑問に思っています
私の接続コードは次のようになります。
public class SSLSocket {
private static Logger logger = LoggerFactory.getLogger(SSLSocket.class);
private ConnectionProperties connectionProperties;
public TuSSLSocket(ConnectionProperties connectionProperties) {
this.connectionProperties = connectionProperties;
}
public SSLSocket getSSLSocket() throws Exception{
SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket socket = (SSLSocket) factory.createSocket(connectionProperties.getHost(), connectionProperties.getPort());
socket.setSoTimeout(90000);
return socket;
}
}
それに応じてホストとポートを設定しましたが、キーストアでこのエイリアスを探す場所はありません。では...アプリは取得するエイリアスをどのように知るのでしょうか?