https urlで接続を設定しようとしていますが、まだテスト中であるため、urlがテスト環境にリダイレクトされ、証明書が信頼されていて有効であるがドメイン名と一致しないというメッセージが表示され、続行したい場合。私はJavaでこれを扱うのに苦労している。私が見つけたすべての答えは、このようなTrustManagerを使用することをお勧めします。Java SSL接続の「間違った名前」タイプのエラーを無視します
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {
return;
}
public void checkServerTrusted(X509Certificate[] certs, String authType) {
return;
}
}};
sslContext.init(kmf.getKeyManagers(), trustAllCerts, new SecureRandom());
しかし、これは何も変わりません。
認証には、クライアント証明書の秘密鍵を読み取る際にパスワードを入力する必要があります。これは、ブラウザとアプリケーションの両方から正しく同じに正しく動作します。この認証後、ブラウザでプロンプトがポップアップ表示されるか、私のアプリケーションで 'bad_certificate'エラーが発生しました。ドメインの検証を完全に無視するか、同じプロンプトが表示されるようにするには、他の方法がありますか?
わかりやすくするために、私のアプリケーションでは、パスワードプロンプトが表示されません。アプリケーションの秘密鍵にアクセスしようとしているアプリケーションを検出したウィンドウから発信されたものだと思います。 2番目のプロンプトは同様のやり方で動作しますが、それを実現するためのパラメータはまだ見つかりませんでした。
これは有効な警告です。しかし、私はこれを否定して答えたわけではありません.Javaコードが正当なHTTPS URLに接続する必要がある状況があります。そのJavaコードは(適切なブラウザのように)「証明書の名前Xが一致しませんURLのホスト名Y "と、ユーザが接続を希望する場所を指定します。 –