簡體   English   中英

將加密的私鑰導入到jks

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM