Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在具有P7B证书的Spring Boot Java应用程序中启用HTTPS_Java_Openssl_Keystore_Jks - Fatal编程技术网

在具有P7B证书的Spring Boot Java应用程序中启用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

我想在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 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后执行的步骤:

  • 将证书链(p7b)与您在第一步中创建的私钥相关联
现在,您将拥有一个签名密钥对,可用于保护应用程序

要回答您的问题,您需要找到您第一次创建的密钥库,其中包含私钥和公钥(自签名证书)。然后使用keytool将证书链(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?(无论如何,我都是这样理解这些文件的)