[英]import encrypted private key to jks
我需要在項目中使用ssl(2握手)套接字進行連接。 因此,為了創建密鑰,我使用了帶有以下命令的openssl:
對於服務器:
req -x509 -days 3650 -nodes -newkey rsa:2048 -keyout a_private.key -out a_certificate.cert
rsa -in a_private.key -des3 -out a_private_des.key
rsa -in a_private_des.key -pubout -out a_pub.key
對於客戶:
req -x509 -days 3650 -nodes -newkey rsa:2048 -keyout b_private.key -out b_certificate.cert
rsa -in b_private.key -des3 -out b_private_des.key
rsa -in b_private_des.key -pubout -out b_pub.key
導入到jks文件中,我使用了keytool:
keytool -import -alias a_private -file a_private_des.key -keystore a.jks
keytool error: java.lang.Exception: Input not an X.509 certificate
之后,我使用以下命令制作了der文件:
pkcs8 -topk8 -in a_private_des.key -out a_private_des.der -outform DER
並嘗試將密鑰導入到jks文件:
keytool -import -alias a_private -file a_private_des.der -keystore a.jks
keytool error: java.lang.Exception: Input not an X.509 certificate
我也得到了b_pub.key的異常
如何在jks文件中導入加密的私鑰和公鑰?
坦克斯很多。
我相信-import選項只能讓您導入證書,而不是密鑰。 查看這篇文章 ,看來您可能必須編寫某種解決方法。
要將密鑰對(密鑰和cert)導入到Java密鑰庫中,首先需要創建一個p12文件。 雖然問題是“將加密的私鑰導入到jks”,但實際上我不認為所討論的密鑰是加密的,因為使用了“ nodes”選項。
因此,要導入密鑰並將證書導入到JKS中,請使用:
# create p12
openssl pkcs12 -export \
-name a_private \
-out a_private.p12 \
-inkey a_private.key \
-in a_certificate.cert \
-passin "pass:changeit" \
-passout "pass:changeit"
# create jks
keytool -v -importkeystore -deststoretype pkcs12 -destkeystore \
"a.jks" \
-srckeystore "a_private.p12" -srcstoretype pkcs12 \
-alias "a_private" -srcstorepass "changeit" \
-deststorepass "changeit" -destkeypass "changeit"
實際上也要更改密碼“ changeit”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.