Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menerima Sijil SSL Ditandatangani Sendiri dalam Pelanggan Java Saya?

Bagaimanakah Saya Boleh Menerima Sijil SSL Ditandatangani Sendiri dalam Pelanggan Java Saya?

Barbara Streisand
Barbara Streisandasal
2024-12-29 07:17:14703semak imbas

How Can I Accept Self-Signed SSL Certificates in My Java Client?

Menerima Sijil SSL Ditandatangani Sendiri dalam Pelanggan Java

Pengenalan

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.

Pilihan 1: Mewujudkan Rantaian Amanah

Menggunakan Linux Bash:

  1. Eksport sijil pelayan ke a fail:

    openssl s_client -connect server:port -showcerts > server.cer
  2. Import sijil ke dalam gedung amanah JVM:

    keytool -import -v -trustcacerts -alias server-alias -file server.cer -keystore cacerts.jks -keypass changeit -storepass changeit

Pilihan 2: Melumpuhkan Pengesahan Sijil

Menggunakan Java Kod:

  1. Buat pengurus amanah yang membenarkan semua sijil dengan mengatasi kaedah pengesahan:

    TrustManager[] trustAllCerts = new TrustManager[] {
        new X509TrustManager() {
            ... (overridden methods here)
        }
    };
  2. 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());

Pengesyoran

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!

Kenyataan:
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