Rumah >Java >javaTutorial >Bagaimanakah Pelanggan Java Boleh Mengendalikan Sijil SSL yang Ditandatangani Sendiri?
Klien Java Mengendalikan Sijil SSL Ditandatangani Sendiri
Apabila pelanggan Java menemui sambungan SSL ke pelayan dengan sijil yang ditandatangani sendiri, ia mungkin gagal dengan ralat seperti:
sun.security.validator.ValidatorException: PKIX path building failed
Pilihan 1: Menambah pada Truststore
Untuk mewujudkan kepercayaan, tambahkan sijil yang ditandatangani sendiri pada gedung amanah JVM:
<JAVA_HOME>/bin/keytool -import -v -trustcacerts \ -alias server-alias -file server.cer \ -keystore cacerts.jks -keypass changeit \ -storepass changeit
Pilihan 2: Melumpuhkan Pengesahan Sijil (Tidak Disyorkan)
Lumpuhkan pengesahan sijil dengan yang berikut kod:
// 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());
Walau bagaimanapun, melumpuhkan pengesahan sijil tidak disyorkan kerana ia menyebabkan pelanggan terdedah kepada serangan man-in-the-middle.
Atas ialah kandungan terperinci Bagaimanakah Pelanggan Java Boleh Mengendalikan Sijil SSL yang Ditandatangani Sendiri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!