Цифровой сертификат: как импортировать файл .cer в файл .truststore с помощью?

92

Кто нибудь сталкивался, где приходится иметь дело с файлом .truststore? и знаете, как импортировать .cer в файл .truststore?

Я не уверен, нужно ли мне использовать Java Keytool или команду Linux (например, команду openssl).

Благодарность

чистый
источник

Ответы:

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 - пароль хранилища доверенных сертификатов по умолчанию

Стрелок
источник
любой знает, как делать в openssl
Баламуруган
8
Эта команда позволяет загрузить сертификат в файл с именем и certfile.txt: openssl s_client -connect HOSTNAME: PORTNUM 2> & 1 | sed -ne '/ -BEGIN CERTIFICATE - /, / - END CERTIFICATE- / p'> certfile.txt --- Затем используйте keytool, чтобы импортировать его в ваше хранилище
доверенных сертификатов
2
Вы можете загрузить сертификат любого веб-сайта, защищенного SSL, в своем браузере. В FireFox просто дважды щелкните значок замка в поле адреса URL.
BetaRide
если у вас есть файл «jssecacerts», используйте вместо него «-keystore jssecacerts». "cacerts" игнорируется
kommradHomer 05
24

Вместо использования sedдля фильтрации сертификата вы также можете передать openssl s_clientвывод openssl x509 -out certfile.txt, например:

echo "" | openssl s_client -connect my.server.com:443 -showcerts 2>/dev/null | openssl x509 -out certfile.txt
jbuhacoff
источник
Этот ответ был задуман как улучшение комментария Кристиана к принятому ответу о загрузке сертификата. Наверное, должен был быть комментарий.
jbuhacoff
9

Вы импортируете файл .cer в хранилище доверенных сертификатов так же, как импортируете файл .crt, скажем, из экспорта из Firefox.

Вам не нужно указывать псевдоним и пароль хранилища ключей, вы можете просто ввести:

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

Предпочтительно использовать файл cacerts, который уже находится в вашей установке Java (jre \ lib \ security \ cacerts), поскольку он содержит безопасные «популярные» сертификаты.

Обновление относительно различий cer и crt (просто для пояснения) Согласно Apache с SSL - как преобразовать сертификаты CER в CRT? и пользователь @Spawnrider

CER - это сертификат X.509 в двоичной форме в кодировке DER.
CRT - это двоичный сертификат X.509, заключенный в текстовую (base-64) кодировку.
Это не та кодировка.

Андреас Панагиотидис
источник
1
Все это означает, что вы экспортировали файл с немного другим именем. Это не меняет файл, вопрос или ответ. Целесообразно указать псевдоним: в противном случае вы рискуете перезаписать предыдущий импорт.
Marquis of Lorne
Есть ли у .crt и .cer формат some? Расширение не играет роли в сертификатах? Хороший момент по поводу псевдонима.
Андреас Панагиотидис
1
Отвечаю на свой вопрос: да, у crt и cer одинаковый формат. То же самое. Вы можете импортировать оба в хранилище доверенных сертификатов.
Андреас Панагиотидис