HTTPS サービスを使用する Java Web サービス クライアントにおける「java.security.cert.CertificateException: サブジェクトの代替名が存在しません」エラーの修正
、証明書にサブジェクトの代替名がない場合、「java.security.cert.CertificateException: サブジェクトの代替名が存在しません」エラーが発生します。段階的な解決策は次のとおりです:
この問題を解決するには:
-
証明書を取得します: 「openssl s_client -showcerts -connect AAA.BBB」を実行します。 .CCC.DDD:9443 > certs.txt」を使用して証明書を取得します。
-
証明書を抽出します: 「-----BEGIN CERTIFICATE-----」の間のテキストをコピーします。 certs.txt の「」と「-----END CERTIFICATE-----」。
-
証明書を変更します: 証明書名を「AAA.BBB.CCC.DDD」に置き換えます。 " を使用して IP アドレスと一致させます。
-
証明書をインポートします: "keytool -importcert -file fileWithModifiedCertificate" を使用して、変更された証明書をインポートします。
または、次のようにします。証明書の代わりにホスト名を使用します:
-
SSL 検証を無効にする: 次のコードを ISomeService クラスに追加します:
-
「使用」の意味を理解する: 「使用」とは、証明書に別の名前が含まれている場合でも、ホスト名をサーバー ID として使用することを指します。
以上がJava Web サービスでの「java.security.cert.CertificateException: サブジェクトの代替名が存在しません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。