在具有P7B证书的Spring Boot Java应用程序中启用HTTPS
我想在spring boot java应用程序中使用p7b证书启用https在具有P7B证书的Spring Boot Java应用程序中启用HTTPS,java,openssl,keystore,jks,Java,Openssl,Keystore,Jks,我想在spring boot java应用程序中使用p7b证书启用https server.ssl.key-store=cert.p7b server.ssl.keyStoreType=PKCS7 但PKCS7不受支持,这就是为什么我试图将其转换为java密钥存储文件(JKS),但失败了 首先,我尝试使用关键工具导入它 keytool -importcert -trustcacerts -file cert.p7b -keystore newkeystore.jks –storetype JC
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),您需要
私钥
以及您拥有的p7b证书链
这就是p7b的发行方式:
- 首先创建密钥对(私钥和公钥)
- 从上面创建的密钥对创建CSR(PKCS#10)
- 将CSR发送给证书颁发机构(CA)进行签名
- CA以p7b(PKCS#7)格式为其签署了一份回赠证书链
- 将证书链(p7b)与您在第一步中创建的私钥相关联
keytool
命令来关联证书链
keytool-importcert-keystore[keystore]-storepass[keystore\u PASSWORD]-file[P7B\u file]-trustcacerts-alias[alias\u OF_KEY\u PAIR]-keypass[KEY\u PAIR\u PASSWORD]
导入后,这将是用于保护SpringBoot应用程序的密钥库。扩展名p7b文件仅包含证书链,因此PKCS7不是有效的密钥库类型 由于您已经生成了证书,因此您别无选择,只能获取相应的私钥。否则,您可以使用OpenSSL之类的工具创建新的自签名证书/密钥对。或者生成一个CSR,并让CA对其进行签名(如果您喜欢的话)。从这里::keytool命令可以导入X.509 v1、v2和v3证书,而PKCS#7格式化的证书链由该类型的证书组成,keytool不支持导入p7b?(无论如何,我都是这样理解这些文件的)