[tomcat] Правильно добавляем (обновляем) сертификат

Создаём цепочку сертификатов в убывающем порядке (сначала корневой, потом промежуточный1, промежуточный2):

# cat CAroot.crt intermediate_l1.crt intermediate_l2.crt > chain.crt

Генерируем p12-сертификат (обязательно пароль при экспорте ставим такой же, как и на файл keystore):

# openssl pkcs12 -export -chain -in domain.crt -inkey domain.key -out domain.p12 -name tomcat -CAfile chain.crt

Удаляем старый (если есть)

# keytool -delete -alias tomcat -keystore keystore

Импортируем новый:

# keytool -importkeystore -destkeystore keystore -srckeystore domain.p12 -alias tomcat

Посмотреть текущие сертификаты:

# keytool -list -keystore keystore -v | less
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: tomcat
Creation date: Aug 4, 2017
Entry type: PrivateKeyEntry
Certificate chain length: 4
Certificate[1]:
...

Как видно, у нас 1 сертификат с цепочкой из 4-ох внутри.

 

Ошибки

 

Error:

java.io.IOException: Illegal header: -----BEGIN CERTIFICATE-----

Solution:

Удалите лишние пробелы в начале/конце строки ——BEGIN CERTIFICATE——. Учтите, что в tomcat8 должно быть именно 5 дефисов.

Error:

java.security.UnrecoverableKeyException: Cannot recover key

Solution:

Пароль на экспортируемый файл p12 был отличен от пароля на базу keystore. Установите одинаковый пароль.

Error:

Failed to establish chain from reply

Solution:

Нарушена цепочка сертификатов при импорте. Импортируйте заново.

Error:

Error unable to get issuer certificate getting chain.

Solution:

Не хватает сертификата, которым подписаны нижестоящие. Добавьте все вышестоящие (включая корневой)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *