Sertifikat Digital: Bagaimana cara mengimpor file .cer ke file .truststore menggunakan?

92

Adakah yang tahu di mana mereka harus berurusan dengan file .truststore? dan mengetahui cara mengimpor .cer ke file .truststore?

Saya tidak yakin apakah saya harus menggunakan Java Keytool atau perintah Linux (seperti perintah openssl).

Terima kasih

netic
sumber

Jawaban:

202
# Copy the certificate into the directory Java_home\Jre\Lib\Security
# Change your directory to Java_home\Jre\Lib\Security>
# Import the certificate to a trust store.

keytool -import -alias ca -file somecert.cer -keystore cacerts -storepass changeit [Return]

Trust this certificate: [Yes]

changeit adalah kata sandi truststore default

Strelok
sumber
ada yang tahu bagaimana melakukannya di openssl
Balamurugan
8
Perintah ini memungkinkan Anda mengunduh sertifikat ke nama file certfile.txt: openssl s_client -connect HOSTNAME: PORTNUM 2> & 1 | sed -ne '/ -BEGIN CERTIFICATE - /, / - END CERTIFICATE- / p'> certfile.txt --- Kemudian gunakan keytool untuk mengimpornya di trust store Anda
Christian Achilli
2
Anda dapat mengunduh sertifikat situs web aman SSL apa pun di browser Anda. Di FireFox cukup klik dua kali simbol kunci di bidang alamat URL.
BetaRide
jika Anda memiliki file "jssecacerts", gunakan "-keystore jssecacerts" sebagai gantinya. "cacerts" diabaikan
kommradHomer
24

Alih-alih menggunakan seduntuk memfilter sertifikat, Anda juga dapat menyalurkan openssl s_clientoutput melalui openssl x509 -out certfile.txt, misalnya:

echo "" | openssl s_client -connect my.server.com:443 -showcerts 2>/dev/null | openssl x509 -out certfile.txt
jbuhacoff
sumber
Jawaban ini dimaksudkan sebagai perbaikan atas komentar Christian atas jawaban yang diterima tentang pengunduhan sertifikat. Mungkin seharusnya menjadi komentar.
jbuhacoff
9

Cara Anda mengimpor file .cer ke trust store sama dengan cara Anda mengimpor file .crt dari katakanlah ekspor dari Firefox.

Anda tidak perlu memasukkan alias dan kata sandi keystore, Anda cukup mengetik:

keytool -v -import -file somefile.crt  -alias somecrt -keystore my-cacerts

Sebaiknya gunakan file cacerts yang sudah ada dalam instalasi Java Anda (jre \ lib \ security \ cacerts) karena berisi sertifikat "populer" yang aman.

Update mengenai perbedaan cer dan crt (hanya untuk memperjelas) Menurut Apache dengan SSL - Bagaimana cara mengkonversi sertifikat CER ke CRT? dan pengguna @Spawnrider

CER adalah sertifikat X.509 dalam bentuk biner, dikodekan DER.
CRT adalah sertifikat X.509 biner, yang dienkapsulasi dalam pengkodean teks (base-64).
Ini bukan pengkodean yang sama.

Andreas Panagiotidis
sumber
1
Semua ini berarti Anda mengekspor file dengan nama yang sedikit berbeda. Itu tidak mengubah file, pertanyaan, atau jawabannya. Sebaiknya tentukan alias: jika tidak, Anda berisiko menimpa impor sebelumnya.
Marquis dari Lorne
Apakah .crt dan .cer memiliki format tertentu? Apakah ekstensi tidak berperan dalam sertifikat? Poin bagus tentang alias.
Andreas Panagiotidis
1
Saya menjawab pertanyaan saya: Ya, crt dan cer memiliki format yang sama. Hal yang sama. Anda dapat mengimpor keduanya di trust store.
Andreas Panagiotidis