Команда Newbie keytool - как обновить сертификат, уже добавленный в keystore?
у меня есть самозаверяющий сертификат для моего сервера электронной почты linux exim. Чтобы мои функции Java могли получить доступ к этому серверу электронной почты через GlassFish, я первоначально выпустил:
# keytool -importcert -v -noprompt -alias mail.mycompany.com -file /path/to/mail.mycompany.com.der -keystore /path/to/config/cacerts.jks -storepass changeit
Certificate was added to keystore
это работало нормально, пока сертификат не истек. Мне пришлось создать новый самозаверяющий сертификат, и теперь Java выдает ошибку PKIX path validation failed … path does not chain with any of the trust anchors
.
чтобы попытаться исправить это, я создал новую mail.mycompany.com.der
файл из нового сертификата exim (как это было сделано изначально). Но когда я выдаю вышеуказанную команду keytool (как это было сделано изначально), это дает ошибку Certificate not imported, alias <mail.mycompany.com> already exists.
Я думаю, проблема в том, что я не могу использовать ту же команду keytool. Мне нужно использовать другой, который не добавляет сертификат в хранилище ключей, но обновляет сертификат уже там с более новой версией. Кто-нибудь может указать мне правильное направление для этой команды?
в стороне, есть ли какой-то автоматизированный процесс, который мне не хватает? То есть срок действия сертификата все время истекает... означает ли это, что ИТ-администраторы должны всегда обновлять хранилище ключей новыми сертификатами вручную использовать такой код? Или это можно как-то автоматизировать?
1 ответов
вероятно, самым простым способом было бы удалить исходный сертификат keytool и создать новый сертификат с той же информацией. Хороший способ обойти это, если у вас есть небольшая виртуальная машина, которую вы можете сэкономить, - это установить EJBCA. Это довольно неуклюжий, но EJBCA-бесплатный сервер с открытым исходным кодом, написанный на Java. Вы можете создать свои собственные поддельные сертификаты CA, пользовательские сертификаты, серверные сертификаты и т. д. у всех есть цепи доверия. Кроме того, это довольно хорошо для быстрого создания нового файла JKS для вас, когда вы переиздаете сертификат после истечения срока действия.
удалить:
keytool -delete -keystore myfile.jks -alias 'alias_from_keytool_-list'