Java クライアントでの自己署名 SSL 証明書の処理
自己署名 SSL 証明書または期限切れの SSL 証明書を使用してサーバーに接続する場合、Java通常、クライアントでは証明書の信頼性の欠如が原因でエラーが発生します。この問題を解決するには、自己署名証明書を JVM のトラストストアに追加するか、すべての証明書を信頼するようにクライアントを構成します。
オプション 1: トラストストアのインポート
<JAVA_HOME>\bin\keytool -import -v -trustcacerts \ -alias server-alias -file server.cer \ -keystore cacerts.jks -keypass changeit \ -storepass changeit
オプション 2: 証明書の検証の無効化
警告: これは推奨されません。 SSL セキュリティを侵害します。
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 trust manager SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
URL url = new URL("https://hostname/index.html");
SSL 整合性を維持するには、オプション #1 を優先します。セキュリティを最適化するために、信頼できる CA によって署名された証明書をサーバーに取得させることも推奨されます。
以上がJava クライアントは自己署名 SSL 証明書をどのように処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。