Мой клиент получил три сертификата:
DigiCert Global Root CA.cer - (Root certificate)
GeoTrust RSA CA 2018.cer - (Intermediate certificate)
krapiuat_sharekhan_com.cer - (SSL certificate for my domain)
Предполагается, что все три сертификата будут установлены на моем сервере Spring Boot для включения SSL на одном и том же.
Я использую это со встроенным сервером Tomcat в моем приложении Spring и не могу запустить службу с поддержкой SSL из-за ошибок.
Мои попытки, как указано ниже:
Попытка 1
Я попытался объединить все три файла .cer в один файл и добавить его в хранилище ключей
`cat krapiuat_sharekhan_com.cer GeoTrust\ RSA\ CA\ 2018.cer DigiCert\ Global\ Root\ CA.cer> combined_cert.cer
keytool -importcert -keystore krKeyStore.jks -file combined_cert.cer -alias krRiskRatingUAT -trustcacerts`
Примечание. В конечном файле jks в качестве trustCertEntry * 1017 была показана только одна запись. *
Затем я добавил файл krKeyStore.jks в папку / resource моего приложения Spring и добавил следующие строки в мой файл application.properties:
`server.port=8443
server.ssl.key-store-type=JKS
server.ssl.key-store=classpath:krKeyStore.jks
server.ssl.key-store-password=mypassword
server.ssl.key-alias=krRiskRatingUAT`
Служба не запустилась с исключением. java .io.IOException: jsse.alias_no_key_entry
Попытка 2
Я пытался по отдельности добавить три сертификата в мое хранилище ключей
`keytool -import -trustcacerts -alias root -file DigiCert\ Global\ Root\ CA.cer -keystore krKeyStore20.jks
keytool -import -trustcacerts -alias intermediate -file GeoTrust\ RSA\ CA\ 2018.cer -keystore krKeyStore20.jks
keytool -import -trustcacerts -alias krRiskRatingUAT20 -file krapiuat_sharekhan_com.cer -keystore krKeyStore20.jks`
Примечание: Финал В файле jks теперь отображаются три записи, все они представлены в виде trustCertEntry
Затем я добавил файл krKeyStore20.jks в папку / resource моего приложения Spring и добавил следующие строки в файл application.properties:
`server.port=8443
server.ssl.key-store-type=JKS
server.ssl.key-store=classpath:krKeyStore20.jks
server.ssl.key-store-password=mypassword
server.ssl.key-alias=krRiskRatingUAT20`
Но ошибка все еще сохраняется - java .io.IOException: jsse.alias_no_key_entry
Всегда ли обязательно иметь ключ? Мой клиент не готов предоставить мне закрытый ключ и хочет, чтобы я установил сертификаты без ключа. Любая помощь будет оценена по достоинству.