Mengesah Menggunakan Sijil Pelanggan dalam Java
HTTPS, TLS dan SSL ialah protokol kriptografi yang digunakan untuk menjamin komunikasi melalui Internet. Apabila menggunakan sijil untuk pengesahan, pelanggan biasanya membentangkan sijil kepada pelayan untuk pengesahan.
Pembentangan Sijil Pelanggan dalam Java
Apabila pelanggan mengesahkan dengan sijil dalam Java, ia membentangkan fail stor kunci PKCS#12 yang mengandungi:
Stor kunci boleh dijana menggunakan arahan OpenSSL:
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12 -name "Whatever"
Nota bahawa menggunakan OpenSSL versi 0.9.8h boleh menyebabkan isu dalam menjana PKCS#12 fail.
Fail Kedai Amanah
Pelanggan juga memerlukan kedai amanah, fail JKS yang mengandungi sijil CA akar atau perantaraan. Sijil ini menentukan pelayan yang mana pelanggan boleh berkomunikasi.
Ia boleh dijana menggunakan utiliti 'keytool':
keytool -genkey -dname "cn=CLIENT" -alias truststorekey -keyalg RSA -keystore ./client-truststore.jks -keypass whatever -storepass whatever keytool -import -keystore ./client-truststore.jks -file myca.crt -alias myca
Proses Pengesahan Sijil Pelanggan
Pengesahan sijil pelanggan hanya dikuatkuasakan oleh pelayan. Apabila pelayan meminta sijil pelanggan, ia juga menyediakan senarai CA yang dipercayai. Jika sijil pelanggan tidak ditandatangani oleh salah satu CA ini, ia tidak akan dibentangkan.
Wireshark untuk Nyahpepijat
Wireshark ialah alat yang berharga untuk menyahpepijat SSL/HTTPS isu. Ia menyediakan analisis paket terperinci yang boleh membantu mengenal pasti masalah.
Perpustakaan Pelanggan HTTP
Pustaka Apache HttpClient boleh digunakan dengan HTTPS dengan menetapkan argumen JVM:
-Djavax.net.debug=ssl -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStore=client.p12 -Djavax.net.ssl.keyStorePassword=whatever -Djavax.net.ssl.trustStoreType=jks -Djavax.net.ssl.trustStore=client-truststore.jks -Djavax.net.ssl.trustStorePassword=whatever
Tambahan Petua
Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Menggunakan Sijil Pelanggan dalam Java HTTPS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!