Springboot 应用程序 (Spring 2.1.4) HTTPS 已启用

问题描述

我必须启用我的 Spring Boot 应用程序 HTTPS。对于这项任务,我创建了一个 CSR 并将其发送给我雇主的安全团队。他们向我提供了一个签名证书 ncf.cer。我按照网站 (https://www.thomasvitale.com/https-spring-boot-ssl-certificate/) 中的步骤执行了以下步骤。

  1. ncf.cer导入Java/JDK1.8/JRE/lib/security/cacerts(假设是JKS keystore) 别名为‘ncf’

  2. 代码中,将ncf.p12放入src/main/resources

  3. 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 的正确步骤吗?

解决方法

我终于解决了这个问题。以下是步骤

  1. 使用别名将 .cer 导入 cacerts。
  2. 在不提供别名的情况下将 .p12 导入 cacerts。这里系统会生成别名(长 字母数字)。在 applicatins.properties 中提及此别名。
  3. 复制 .p12 到 src/main/resoruces/keystore 里面,然后在里面引用这个路径 应用程序.属性。
,

此错误意味着您的密钥库不包含原始私钥。

签名证书 ncf.cer 应该导入到生成证书请求的原始密钥库中。是cacerts吗?通常这个文件只包含可信证书的公钥,而不是公钥/私钥对。

将签名证书 ncf.cer 导入正确的密钥库后,您可以导出为 PKCS12 格式,然后在您的文件夹中用作 ncf.p12。如果您能分享如何导入 ncf.cer 文件和创建 ncf.p12,我可以提供进一步帮助。