Mengendalikan Sijil SSL Ditandatangani Sendiri dalam Pelanggan Java
Apabila menyambung ke pelayan dengan sijil SSL yang ditandatangani sendiri atau tamat tempoh, Java pelanggan biasanya menghadapi ralat kerana kekurangan kepercayaan terhadap sijil. Untuk menyelesaikan isu ini, anda boleh sama ada menambah sijil yang ditandatangani sendiri ke kedai amanah JVM atau mengkonfigurasi pelanggan untuk mempercayai semua sijil.
Pilihan 1: Mengimport Kedai Amanah
<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
Amaran: Ini tidak disyorkan kerana ia menjejaskan keselamatan 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");
Pilihan #1 untuk mengekalkan integriti SSL. Pelayan juga disyorkan untuk mendapatkan sijil yang ditandatangani oleh CA yang dipercayai untuk keselamatan optimum.
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!