Rumah > Java > javaTutorial > Bagaimanakah Pelanggan Java Boleh Mengendalikan Sijil SSL yang Ditandatangani Sendiri?

Bagaimanakah Pelanggan Java Boleh Mengendalikan Sijil SSL yang Ditandatangani Sendiri?

Susan Sarandon
Lepaskan: 2024-12-19 13:17:09
asal
312 orang telah melayarinya

How Can a Java Client Handle Self-Signed SSL Certificates?

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
Salin selepas log masuk

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
Salin selepas log masuk

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());
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan