Если ктo использует эти дешёвые сертификаты и желает запихнуть всю цепочку в jks storage, то ниже инструкция. Потратил некоторoе количество времени, пока клиенты не начали корректно распознавать всю цепь и оставляю себе здесь на заметку.
1. Заберите себе корневой сертификат
COMODOCertificationAuthority.crt 2. Прилепите к positive ssl сертификату полученному от namecheap, цепь промежуточных сертификатов:
cat api_example_com.crt api_example_com.ca-bundle > api-example-chain.crt
Проверьте получившийся файл, нужно чтобы строки -----END CERTIFICATE----- и -----BEGIN CERTIFICATE----- не слипались. Разбейте их новой строкой, в случае чего, иначе openssl будет скандалить.
3. Экспортируем всю цепь вместе с приватным ключом в формат p12.
openssl pkcs12 -export -in api-example-chain.crt -inkey api-example.key -out api-example.p12 -name api.example.com -CAfile COMODOCertificationAuthority.crt -caname root
4. теперь импортируем всё в java keystore:
keytool -importkeystore \
-deststorepass changeit -destkeypass changeit -destkeystore example-keystore.jks \
-srckeystore api-example.p12 -srcstoretype PKCS12 -srcstorepass changeit \
-alias api.example.com
5. Проверяем :
openssl s_client -showcerts -connect api.example.com:443
s_client должен пролистать всю цепь, сначала должен показаться свежевыданый сертификат, потом промежуточные. Ещё удобно проверять всякими онлайновыми сервисами, типа
этого.