我的委托人给了我三份证书:
DigiCert Global Root CA.cer - (Root certificate) GeoTrust RSA CA 2018.cer - (Intermediate certificate) krapiuat_sharekhan_com.cer - (SSL certificate for my domain)
我需要在我的Spring服务器上安装所有这三个证书,以便在相同的服务器上启用SSL。
我正在Spring应用程序中的嵌入式Tomcat服务器中使用此功能,由于错误,无法启动启用SSL的服务。
我的努力如下:
尝试1
我尝试将所有三个.cer文件合并成一个文件,并将其添加到keystore中。
`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的条目
然后,我将文件krKeyStore.jks添加到Spring应用程序的/resource文件夹中,并在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
拥有钥匙总是必须的吗?我的客户还没有准备好给我私钥,希望我安装没有密钥的证书。如能提供任何帮助,我们将不胜感激。
发布于 2020-02-05 10:21:56
如果没有服务器证书的私钥,就不能创建SSL服务器。需要私钥向客户端证明您是证书的所有者,否则访问证书的任何人(即每个连接到服务器的客户端)都可以声称自己是证书的所有者,也就是说,每个人都可以声称自己是google.com或类似的人。
https://stackoverflow.com/questions/60073290
复制相似问题