Rumah > Java > javaTutorial > Bagaimana untuk Menetapkan Kepercayaan Sijil Tersuai untuk Sambungan SSL Tertentu di Java?

Bagaimana untuk Menetapkan Kepercayaan Sijil Tersuai untuk Sambungan SSL Tertentu di Java?

Susan Sarandon
Lepaskan: 2024-12-18 13:48:14
asal
836 orang telah melayarinya

How to Set Custom Certificate Trust for Specific SSL Connections in Java?

Menetapkan Kepercayaan Sijil Tersuai untuk Sambungan Sasaran

Pernyataan Masalah

Mengintegrasikan modul luaran ke dalam aplikasi memerlukan akses SSL -laman web selamat menggunakan sijil yang ditandatangani sendiri. Kod sedia ada gagal kerana isu amanah dengan sijil. Cabarannya ialah untuk membolehkan aplikasi menerima sijil yang ditandatangani sendiri ini hanya untuk sambungan khusus ini, tanpa menjejaskan kepercayaan untuk sambungan lain atau mengubah suai stor sijil seluruh sistem.

Penyelesaian Optimum

Untuk mempercayai sijil yang ditandatangani sendiri secara terpilih untuk sambungan tertentu, buat kilang SSLSocket tersuai dan tetapkannya pada HttpsURLConnection sebelum mewujudkan sambungan:

...
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslFactory);
conn.setMethod("POST");
...
Salin selepas log masuk

Mewujudkan Kilang SSLSocket

Untuk mencipta kilang SSLSocket, mulakan ia seperti berikut:

/* Load the keyStore that includes self-signed cert as a "trusted" entry. */
KeyStore keyStore = ... 
TrustManagerFactory tmf = 
  TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(keyStore);
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null, tmf.getTrustManagers(), null);
sslFactory = ctx.getSocketFactory();
Salin selepas log masuk

Memuatkan Stor Kunci

Muat stor kunci yang mengandungi sijil yang ditandatangani sendiri sebagai "kemasukan yang dipercayai":

KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(trustStore, trustStorePassword);
trustStore.close();
Salin selepas log masuk

Kaedah Pemuatan Kedai Kunci Alternatif

Sebagai alternatif, gunakan alat kunci untuk mengimport sijil format PEM ke dalam stor kunci:

keytool -import -file selfsigned.pem -alias server -keystore server.jks
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Kepercayaan Sijil Tersuai untuk Sambungan SSL Tertentu 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