我想在具有p7b证书的Spring Boot Java应用程序中启用https。

server.ssl.key-store=cert.p7b
server.ssl.keyStoreType=PKCS7


但是不支持PKCS7,因此我尝试将其转换为Java密钥存储文件(JKS),但失败了。

首先,我尝试使用关键工具将其导入

keytool -importcert -trustcacerts -file cert.p7b -keystore newkeystore.jks –storetype JCEKS


但我得到一个例外

java.lang.Exception: Input not an X.509 certificate


然后我尝试将其转换为pem文件,

openssl pkcs7 -inform der -print_certs -in cert.p7b -out cert.pem


但是后来由于没有私钥而无法将其转换为jks文件。

keytool -importcert -trustcacerts -file cert.pem -keystore newkeystore.jks –storetype JCEKS


任何帮助都是高度赞赏的

最佳答案

为了保护您的SpringBoot应用程序(启用HTTPS),您需要private key以及所拥有的p7b证书链。

这是发出p7b的方式:


首先,您创建一个密钥对(私钥和公钥)
从上面创建的密钥对创建一个CSR(PKCS#10)
将CSR发送到证书颁发机构(CA)以进行签名
CA签署了以p7b(PKCS#7)格式返回的证书链


这些是您收到p7b之后要做的步骤:


将证书链(p7b)与您在第一步中创建的私钥相关联。


现在,您将拥有一个已签名的密钥对,可用于保护您的应用程序。

要回答您的问题,您需要找到首先创建的密钥库,其中包含私钥和公钥(自签名证书)。然后,使用keytool将证书链(p7b)导入/关联到私钥。

如果设法找到包含私钥的密钥库,则可以简单地运行此keytool命令来关联证书链。


  keytool -importcert -keystore [KEYSTORE] -storepass [KEYSTORE_PASSWORD] -file [P7B_FILE] -trustcacerts -alias [ALIAS_OF_KEY_PAIR] -keypass [KEY_PAIR_PASSWORD]。


导入后,这将是您用来保护SpringBoot应用程序的密钥库。

关于java - 使用P7B证书在Spring Boot Java应用程序中启用HTTPS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59285595/

10-12 04:02