#java #ssl-certificate #keystore #websphere-liberty
#java #ssl-сертификат #хранилище ключей #websphere-liberty
Вопрос:
У меня был сертификат CA, срок действия которого истекает в этом году. Мой список файлов key.jks, как показано ниже.
inter, Dec 17, 2019, trustedCertEntry,
....
root, Dec 17, 2019, trustedCertEntry,
....
app.domain.com, Dec 29, 2019, PrivateKeyEntry,
Для продления срока действия я предоставил тот же CSR-файл, который был предоставлен в прошлом году. Теперь у меня есть новые 3 crt-файла для inter, root и domain-name.
Теперь я попытался удалить старые записи с помощью
keytool -delete -alias inter -keystore key.jks -storepass pword
keytool -delete -alias root -keystore key.jks -storepass pword
keytool -delete -alias app.domain.com -keystore key.jks -storepass pword
и импортировал новые файлы сертификатов, такие как
keytool -import -alias inter -file intermediate.crt -keystore key.jks -storepass pword
keytool -import -alias root -file TrustedRoot.crt -keystore key.jks -storepass pword
keytool -import -alias app.domain.com -file app_domain_com.crt -keystore key.jks -storepass pword
Теперь keytool -list
не отображается PrivateKeyEntry для app_domain_com.crt, и приложение не отображается.
inter, Dec 15, 2020, trustedCertEntry,
....
root, Dec 15, 2020, trustedCertEntry,
....
app.doamin.com, Dec 15, 2020, trustedCertEntry,
У меня есть интеграция с ADFS единого входа, и я хотел избежать изменений в нем из-за этого изменения сертификата.
Комментарии:
1. Если вы получили новый сертификат от того же центра сертификации , что и раньше, есть большая вероятность, что он использует те же корневые и промежуточные сертификаты — они обычно намного долговечнее, чем сертификаты конечных объектов, которые обычно составляют год или меньше. Если вы проверили заранее и обнаружили, что они совпадают, вы могли бы избежать их удаления и повторной установки. Тем не менее, вашей реальной проблемой было удаление privatekeyentry для конечного объекта, как правильно ответил новичок.
Ответ №1:
Ваша третья команда удаления также удалила ваш закрытый ключ. Вот почему ваше приложение не работает, вам нужен ваш закрытый ключ для работы SSL.
Когда вы сказали, что хотите повторно использовать тот же CSR, который использовался в прошлый раз, это означает, что вы планировали использовать тот же закрытый ключ, но вы его удалили. Вот почему вы видите их как разные типы после удаления и импорта. В вашем первом keytool list
у вас есть app.domain.com как PrivateKeyEntry (содержит закрытый ключ и сертификат), но после того, как вы удалили и импортировали сертификат, у вас есть app.domain.com как trustedCertEntry (только сертификат). Если вы не удалили закрытый ключ, команда импорта свяжет с ним новый сертификат, поскольку закрытый ключ не найден, он просто добавляет сертификат.
В вашем случае вы должны были выполнить следующие шаги:
- Не запускать третью команду удаления
- Импортировал новый сертификат и связался с существующим закрытым ключом с помощью
-importcert
команды keytool.
Кое-что, что следует учитывать при попытке повторного использования того же CSR, что и в прошлый раз, можно найти здесь, здесь и здесь .
P.S: Я надеюсь, что вы создали резервную копию своего оригинального хранилища ключей.