Saya perlu mengimpor sertifikat ke keystore JVM saya. Saya menggunakan yang berikut ini:
keytool -import -alias daldap -file somecert.cer
jadi saya mungkin perlu mengubah panggilan saya menjadi sesuatu seperti:
keytool -import -alias daldap -file somecert.cer -keystore cacerts –storepass changeit
Jawaban:
Keystore Anda akan berada di Anda
JAVA_HOME---> JRE -->lib---> security--> cacerts
. Anda perlu memeriksa di mana JAVA_HOME Anda dikonfigurasi, mungkin salah satu dari tempat-tempat ini,Komputer ---> Tingkat Lanjut -> Variabel lingkungan ---> JAVA_HOME
File batch startup server Anda.
Dalam cacerts perintah -keystore impor Anda (berikan path lengkap ke JRE di atas, bukan hanya mengatakan cacerts).
sumber
Lokasi Keystore
Setiap perintah keytool memiliki
-keystore
opsi untuk menentukan nama dan lokasi file keystore persisten untuk keystore yang dikelola oleh keytool. Keystore secara default disimpan dalam file yang bernama.keystore
di direktori home pengguna, sebagaimana ditentukan oleh properti sistem "user.home". Diberikan nama pengguna uName, nilai properti "user.home" default keJadi, jika nama pengguna adalah "cathy", "user.home" default ke
http://docs.oracle.com/javase/1.5/docs/tooldocs/windows/keytool.html
sumber
~/.keystore
file misteri ini ! Jika saya mengabaikan-keystore
parameter, saya tidak tahukeytool
penargetan default keystore mana . Saya terus mencaricacerts
tempat lain di mesin. Saya tidak berharap keytool untuk menghasilkan~/.keystore
di direktori home, juga untuk itu diberi nama.keystore
bukancacerts
. Anda telah mengisi kolom yang harus didokumentasikan oleh orang-orang Jawa! Terima kasih!Mac OS X 10.12 dengan Java 1.8:
$ JAVA_HOME / jre / lib / security
/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Dari situ ada di:
Saya memiliki cysterts keystore di sana.
Untuk menentukan ini sebagai opsi VM:
Saya tidak mengatakan ini adalah cara yang benar (Mengapa java tidak tahu untuk melihat ke dalam JAVA_HOME?), Tetapi ini adalah apa yang harus saya lakukan untuk membuatnya bekerja.
sumber
Anda dapat menemukannya di direktori "Beranda" Anda:
Di Windows 7:
Di Linux (Ubuntu):
sumber
user.home
sama dengan$HOMEDRIVE$HOMEPATH
set by windows dan tidak di$HOME
set oleh cygwin manaHOMEDRIVE=C:
danHOMEPATH=\Users\[YOUR ACCOUNT]
Ini bekerja untuk saya:
Hanya untuk Linux. Solaris saya tidak memiliki tautan baca. Pada akhirnya saya menggunakan Perl-Script ini:
sumber
Seperti yang DimtryB sebutkan, secara default keystore berada di bawah direktori pengguna. Tetapi jika Anda mencoba memperbarui
cacerts
file, sehingga JVM dapat memilih kunci, maka Anda harus memperbaruicacerts
file di bawahjre/lib/security
. Anda juga dapat melihat kunci dengan menjalankan perintahkeytool -list -keystore cacerts
untuk melihat apakah sertifikat Anda ditambahkan.sumber
lib/security
jalur yang benar secara otomatis jika hanya diberi nama relatif.-importcert
. Perintah daftar menunjukkan sertifikat lebar sistem tetapi perintah impor menghasilkan file baru di direktori saat ini.updatedb; locate cacerts
membantu menemukan di mana lokasi pemasangan file arsip.Di Debian, menggunakan versi openjdk "1.8.0_212", saya menemukan cacerts di sini:
Tentu akan berguna jika ada perintah standar yang akan mencetak jalur ini.
sumber
Bagi saya menggunakan gambar OpenJDK 12 Docker resmi , lokasi keystore Java adalah:
sumber
keytool -import -file example.crt -alias exampleCA -keystore truststore.jks
Anda juga menggunakan parameter-keystore
... IMHO cukup jelas. Dan yang tak kalah pentingnya: Saya mencari tentang masalah yang sebenarnya - dan menemukan pertanyaan yang begitu. Mungkin orang lain mengharapkan hal yang sama.Kami mengalami masalah ini pada Tomcat yang berjalan dari direktori jre yang (hampir sepenuhnya) dihapus setelah pembaruan jre otomatis, sehingga jre yang berjalan tidak lagi dapat menemukan jre ... / lib / security / cacerts karena sudah tidak ada lagi.
Restart Tomcat (setelah mengubah konfigurasi agar berjalan dari lokasi jre yang berbeda) memperbaiki masalahnya.
sumber
Selain semua jawaban di atas:
Jika memperbarui file cacerts di direktori JRE tidak membantu, coba perbarui di JDK.
C: \ Program Files \ Java \ jdk1.8.0_192 \ jre \ lib \ security
sumber