ホームページ > Java > &#&チュートリアル > Java で自己署名または期限切れの SSL 証明書を処理するにはどうすればよいですか?

Java で自己署名または期限切れの SSL 証明書を処理するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-01 10:15:11
オリジナル
966 人が閲覧しました

How to Handle Self-Signed or Expired SSL Certificates in Java?

Java クライアントでの SSL 証明書検証のオーバーライド

自己署名または期限切れの SSL 証明書を使用してサーバーに接続する場合、デフォルトの Java 動作は次のようになります。接続を拒否します。このような接続を許可するには、主に 2 つのオプションがあります。

オプション 1: トラストストアに証明書を追加する

これには、サーバーの証明書をインポートして信頼チェーンを確立することが含まれます。 JVM のトラストストアへ:

<JAVA_HOME>/bin/keytool -import -v -trustcacerts \
-alias server-alias -file server.cer \
-keystore cacerts.jks -keypass changeit \
-storepass changeit
ログイン後にコピー

オプション 2: 無効化証明書の検証

このアプローチはセキュリティが低下するため推奨されませんが、次のコードを使用して実行できます:

// Create a trust manager that doesn't validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[] {
    new X509TrustManager() {
        public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }
        public void checkClientTrusted(X509Certificate[] certs, String authType) {}
        public void checkServerTrusted(X509Certificate[] certs, String authType) {}
    }
};

// Install the all-trusting trust manager
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

// Access the HTTPS URL without certificate validation
URL url = new URL("https://hostname/index.html");
ログイン後にコピー

推奨事項

セキュリティを強化するには、証明書の検証を無効にする (オプション 2) を避け、代わりに信頼できる証明書を使用することを強くお勧めします。 CA がサーバーの証明書に署名します (または自己署名証明書をトラストストアにインポートします)。

以上がJava で自己署名または期限切れの SSL 証明書を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート