我想在具有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的方式:
以下是您收到p7b之后要做的步骤:
现在您将拥有一个已签名的密钥对,可用于保护您的应用程序。
要回答您的问题,您需要找到首先创建的密钥库,其中包含私钥和公钥(自签名证书)。然后,您可以使用keytool将证书链(p7b)导入/关联到私钥。
如果您设法找到包含私钥的密钥库,则可以简单地运行此keytool
命令来关联证书链。
keytool -importcert -keystore [KEYSTORE] -storepass [KEYSTORE_PASSWORD]-文件[P7B_FILE] -trustcacerts -alias [ALIAS_OF_KEY_PAIR] -keypass [KEY_PAIR_PASSWORD]。
导入后,这将是您用来保护SpringBoot应用程序的密钥库。
扩展名p7b文件仅包含证书链,因此PKCS7不是有效的密钥库类型。
由于您已经生成了证书,因此别无选择,只能获取相应的私钥。否则,您可以使用诸如OpenSSL之类的工具来创建新的自签名证书/密钥对。或者,如果您喜欢的话,也可以生成CSR并由CA对其进行签名。