Rumah > Java > javaTutorial > Bagaimana untuk Mengendalikan Sijil SSL yang Ditandatangani Sendiri atau Tamat Tempoh di Java?

Bagaimana untuk Mengendalikan Sijil SSL yang Ditandatangani Sendiri atau Tamat Tempoh di Java?

Susan Sarandon
Lepaskan: 2025-01-01 10:15:11
asal
996 orang telah melayarinya

How to Handle Self-Signed or Expired SSL Certificates in Java?

Mengatasi Pengesahan Sijil SSL dalam Pelanggan Java

Apabila menyambung ke pelayan dengan sijil SSL yang ditandatangani sendiri atau tamat tempoh, tingkah laku Java lalai adalah untuk menolak sambungan. Untuk membenarkan sambungan sedemikian, anda mempunyai dua pilihan utama:

Pilihan 1: Menambah Sijil pada Kedai Amanah

Ini melibatkan mewujudkan rantaian amanah dengan mengimport sijil pelayan ke kedai 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 Sijil Pengesahan

Pendekatan ini tidak disyorkan kerana ia melemahkan keselamatan, tetapi ia boleh dilakukan menggunakan kod berikut:

// Create a trust manager that doesn't validate certificate chains
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 all-trusting trust manager
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

// Access the HTTPS URL without certificate validation
URL url = new URL("https://hostname/index.html");
Salin selepas log masuk

Pengesyoran

Untuk keselamatan yang dipertingkatkan, adalah dinasihatkan agar anda mengelak daripada melumpuhkan pengesahan sijil (Pilihan 2) dan sebaliknya gunakan CA yang bereputasi untuk menandatangani sijil pelayan (atau import sijil yang ditandatangani sendiri ke kedai amanah).

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Sijil SSL yang Ditandatangani Sendiri atau Tamat Tempoh di Java?. 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