我正在尝试使用SSL保护我的SpringBoot服务器。我已经生成了密钥库和CSR。我收到了GoDaddy颁发的中级和域证书。我将那些导入到用于生成CSR的密钥库中。
我使用以下命令来生成密钥库和CSR。
keytool -genkey -alias server-alias -keyalg RSA -keysize 2048 -keystore keystore.jks -dname "CN=name,OU=Unit, O=Org, L=NoWhere, ST=NoWhere, C=CA"
keytool -certreq -alias server-alias -file domain.csr -keystore keystore.jks
在SpringBoot应用程序中,我的applications.properties文件中具有以下配置。
server.ssl.key-store-type=JKS
server.ssl.key-store=location/keystore.jks
server.ssl.key-store-password=password
server.ssl.key-alias=server-alias
security.require-ssl=true
我在启动时收到了以下异常原因:
Caused by: java.io.IOException: jsse.alias_no_key_entry
at org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:317)
at org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:239)
at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:97)
... 20 common frames omitted
非常感谢您的帮助。谢谢!
答案 0 :(得分:3)
似乎有(至少)几个原因可以导致这种情况发生:
要查找的别名需要存在于密钥库中,并且相关的私钥需要存在于其中(不仅仅是证书)。如果不满足这些条件,它将引发此错误。