我必须启用Spring启动应用程序HTTPS。对于这项任务,我创建了一个CSR,并将其发送给我雇主的安全团队。他们向我提供了一份签名证书ncf.cer(https://www.thomasvitale.com/https-spring-boot-ssl-certificate/)并执行以下步骤。
-
将
ncf.cer
导入Java/JDK1.8/JRE/lib/security/cacerts(假设它是JKS密钥库(别名为"ncf"> -
在代码中,将
ncf.p12
放入src/main/resources
-
对
applications.properties
进行了以下更改
server.ssl.key-store-type=PKCS12
server.ssl.key-store=src/main/resources/keystore/ncf.p12
server.ssl.key-store-password=changeit
server.ssl.key-alias=ncf
启动Springboot应用程序时出现错误:
Caused by: java.io.IOException: jsse.alias_no_key_entry
有人能帮助我获得启用HTTPS应用程序的正确步骤吗?
我终于解决了这个问题。以下是的步骤
- 使用别名将.cer导入到cacerts中
- 在不提供别名的情况下将.p12导入到cacerts中。此处系统将生成别名(long字母数字(。在applicationins.properties中提到这个别名
- 将.p12复制到src/main/resoruces/keystore中,然后将此路径引用到应用程序.属性
此错误意味着您的密钥库不包含原始私钥。
签名的证书ncf.cer
应该导入到生成证书请求的原始密钥库中。是cacerts
吗?通常,此文件只包含受信任证书的公钥,而不包含公钥/私钥对。
将签名证书ncf.cer
导入正确的密钥库后,就可以导出为PKCS12格式,然后在文件夹中用作ncf.p12
。如果您能分享ncf.cer
文件是如何导入和创建ncf.p12
的,我可以提供进一步的帮助。