ホームページ >Java >&#&チュートリアル >Java クライアントは自己署名 SSL 証明書をどのように処理できますか?
自己署名 SSL 証明書を処理する Java クライアント
Java クライアントが自己署名証明書を持つサーバーへの SSL 接続に遭遇すると、次のようなエラーで失敗する場合があります:
sun.security.validator.ValidatorException: PKIX path building failed
オプション1: トラストストアへの追加
信頼を確立するには、自己署名証明書を JVM トラストストアに追加します:
<JAVA_HOME>/bin/keytool -import -v -trustcacerts \ -alias server-alias -file server.cer \ -keystore cacerts.jks -keypass changeit \ -storepass changeit
オプション 2: 証明書の検証を無効にする (非推奨) )
次のようにして証明書の検証を無効にしますcode:
// Trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] certs, String authType) {} @Override public void checkServerTrusted(X509Certificate[] certs, String authType) {} @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } } }; // Install trust manager SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
ただし、証明書の検証を無効にすると、クライアントが中間者攻撃に対して脆弱になるため、お勧めできません。
以上がJava クライアントは自己署名 SSL 証明書をどのように処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。