ホームページ >Java >&#&チュートリアル >HTTPS 経由で Web サービスにアクセスするときに発生する「java.security.cert.CertificateException: サブジェクトの代替名が存在しません」エラーを修正するにはどうすればよいですか?

HTTPS 経由で Web サービスにアクセスするときに発生する「java.security.cert.CertificateException: サブジェクトの代替名が存在しません」エラーを修正するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-08 02:31:02337ブラウズ

How do I fix the

「java.security.cert.CertificateException: サブジェクトの代替名が存在しません」エラーを修正する

を使用して HTTPS 経由で Web サービスにアクセスするときJava クライアントで「java.security.cert.CertificateException: サブジェクトの代替名が存在しません」エラーが発生した場合は、証明書のサブジェクト名とホスト アドレスが一致しないことを示しています。

この問題を解決するには、次の手順に従います。

  1. 「openssl s_client」の出力から「-----BEGIN CERTIFICATE-----」と「-----END CERTIFICATE-----」の間の証明書情報を抽出します。 -showcerts -connect AAA.BBB.CCC.DDD:9443 -gt; certs.txt".
  2. 「サブジェクトの共通名 (CN)」フィールドが IP アドレス (AAA. BBB.CCC.DDD)。これは、OpenSSL の「x509」コマンドなどのツールを使用して実現できます。
  3. 「keytool -importcert -file fileWithModifiedCertificate」を使用して、変更された証明書をインポートします。

ただし、この方法は常に有効であるとは限りません。サーバーの証明書を制御できない場合は、これが可能です。

別の解決策は、HTTPS チェックを無効にすることです。このアプローチには、すべての証明書の受け入れを許可するカスタム トラスト マネージャーとホスト名検証ツールの作成が含まれます。 「ISomeService」クラスに、次のコードを追加します。

セキュリティ上の理由から、実稼働環境では HTTPS チェックを無効にすることはお勧めできません。

以上がHTTPS 経由で Web サービスにアクセスするときに発生する「java.security.cert.CertificateException: サブジェクトの代替名が存在しません」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。