Bagaimana program java saya tahu di mana keystore saya yang berisi sertifikat itu? Atau sebagai alternatif, bagaimana cara memberi tahu program java saya di mana harus mencari keystore?
Setelah menentukan keystore dalam beberapa cara, bagaimana menentukan sertifikat yang digunakan untuk mengotentikasi server ke klien?
Jawaban:
sumber
Properti SSL diatur pada level JVM melalui properti sistem. Berarti Anda dapat mengaturnya saat menjalankan program (java -D ....) Atau Anda dapat mengaturnya dalam kode dengan melakukan System.setProperty.
Kunci spesifik yang harus Anda atur adalah di bawah ini:
sumber
Hanya kata-kata peringatan. Jika Anda mencoba untuk membuka keystore JKS yang ada di Java 9 dan seterusnya, Anda perlu memastikan bahwa Anda menyebutkan properti berikut juga dengan nilai sebagai "JKS":
Alasannya adalah bahwa tipe keystore default seperti yang ditentukan dalam file java.security telah diubah menjadi pkcs12 dari jks dari Java 9 dan seterusnya.
sumber
Pertama-tama, ada dua jenis keystores.
Individu dan Umum
Aplikasi akan menggunakan yang ditunjukkan dalam startup atau default sistem.
Ini akan menjadi folder yang berbeda jika JRE atau JDK berjalan, atau jika Anda memeriksa yang pribadi atau yang "global".
Mereka juga dienkripsi
Singkatnya, jalannya akan seperti:
$JAVA_HOME/lib/security/cacerts
untuk "yang umum", yang memiliki semua CA untuk Otoritas dan sangat penting.sumber
Anda juga bisa menyebutkan path saat runtime menggunakan
-D
properti seperti di bawah iniDalam aplikasi percikan apache saya, saya biasa menyediakan jalur sertifikat dan keystore menggunakan
--conf
opsi danextraJavaoptions
dalam percikan-kirim seperti di bawah inisumber