Apabila cuba menyambung ke pelayan dengan sijil SSL yang ditandatangani sendiri atau tamat tempoh , pelanggan Java mungkin menghadapi ralat yang menunjukkan laluan pensijilan tidak sah. Ralat ini boleh diselesaikan dengan mewujudkan rantaian amanah atau melumpuhkan pengesahan sijil.
Menggunakan Linux Bash:
Eksport sijil pelayan ke a fail:
openssl s_client -connect server:port -showcerts > server.cer
Import sijil ke dalam gedung amanah JVM:
keytool -import -v -trustcacerts -alias server-alias -file server.cer -keystore cacerts.jks -keypass changeit -storepass changeit
Menggunakan Java Kod:
Buat pengurus amanah yang membenarkan semua sijil dengan mengatasi kaedah pengesahan:
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { ... (overridden methods here) } };
Pasang pengurus amanah dan tetapkannya sebagai lalai untuk SSL sambungan:
SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
Adalah amat disyorkan untuk menggunakan Pilihan 1, kerana ia mewujudkan rantaian amanah dan bukannya melumpuhkan pengesahan sijil. Ini memastikan identiti pelayan dapat disahkan dan serangan orang di tengah dapat dikurangkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menerima Sijil SSL Ditandatangani Sendiri dalam Pelanggan Java Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!