[英]How to send a .p7b format client certificate with request in spring boot?
[英]Enable HTTPS in a Spring Boot Java application with a P7B certificate
我想在帶有 p7b 證書的 Spring Boot Java 應用程序中啟用 https。
server.ssl.key-store=cert.p7b
server.ssl.keyStoreType=PKCS7
但是不支持 PKCS7,這就是為什么我嘗試將其轉換為 Java 密鑰存儲文件 (JKS),但我失敗了。
首先我嘗試使用key工具導入它
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] -file [P7B_FILE] -trustcacerts -alias [ALIAS_OF_KEY_PAIR] -keypass [KEY_PAIR_PASSWORD]。
導入后,這將是您用來保護 SpringBoot 應用程序的密鑰庫。
擴展 p7b 文件僅包含證書鏈,因此 PKCS7 不是有效的密鑰庫類型。
由於您已經生成了證書,因此您別無選擇,只能獲取相應的私鑰。 否則,您可以使用 OpenSSL 等工具創建新的自簽名證書/密鑰對。 或者,如果您喜歡這種方式,可以生成 CSR 並由 CA 對其進行簽名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.