Kilang Soket SSL Tersuai untuk Sijil Ditandatangani Sendiri
Untuk menyambung ke tapak web menggunakan sijil yang ditandatangani sendiri, aplikasi Java mesti mengubah suai mereka tingkah laku lalai. Begini cara untuk mencapai matlamat anda tanpa berkompromi menggunakan kilang SSLSocket tersuai:
Buat Kilang SSLSocket:
SSLSocket Kilang:
Kod Contoh:
import javax.net.ssl.*; import java.io.FileInputStream; import java.security.KeyStore; public class CustomSSLContext { public static SSLSocketFactory getSSLSocketFactory() { // Load the keystore with the self-signed certificate KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); keyStore.load(new FileInputStream("truststore.jks"), "password".toCharArray()); // Create a TrustManagerFactory and initialize it with the keystore TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init(keyStore); // Create an SSLContext and initialize it with the TrustManagerFactory SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, tmf.getTrustManagers(), null); // Get the SSLSocketFactory from the SSLContext return sslContext.getSocketFactory(); } public static void main(String[] args) { // Create an HttpsURLConnection with the custom SSLSocketFactory URL url = new URL("https://host.example.com/"); HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); conn.setSSLSocketFactory(getSSLSocketFactory()); // Send the request to the website conn.setMethod("POST"); conn.getOutputStream().write("data".getBytes()); // Read the response from the website conn.getInputStream().read(); } }
Pendekatan ini membolehkan anda menyambung ke tapak web menggunakan sijil yang ditandatangani sendiri tanpa menjejaskan sambungan lain dalam aplikasi atau memerlukan pengubahsuaian pada JRE.
Atas ialah kandungan terperinci Bagaimana untuk Membuat Kilang SSLSocket Tersuai di Java untuk Sijil Ditandatangani Sendiri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!