【发布时间】:2023-03-23 02:00:01
【问题描述】:
我的客户给了我三个证书:
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。
我在我的 Spring 应用程序中将它与嵌入式 Tomcat 服务器一起使用,并且由于错误而无法启动启用 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 文件仅显示一个条目为trustedCertEntry
然后我在我的 Spring 应用程序的 /resource 文件夹中添加了文件 krKeyStore.jks 并在我的 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 文件现在将三个条目都显示为trustedCertEntry
然后我在我的 Spring 应用程序的 /resource 文件夹中添加了文件 krKeyStore20.jks 并在我的 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
是否总是必须拥有密钥?我的客户还没有准备好给我私钥,并希望我在没有密钥的情况下安装证书。任何帮助将不胜感激。
【问题讨论】:
标签: spring spring-boot ssl ssl-certificate x509