我需要使用ssl(双向握手)套接字连接在我的项目中。因此,为了创建密钥,我在以下组件中使用了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 certificateb_pub.key也有同样的异常
如何在jks文件中导入加密的私钥和公钥?
坦克斯很多。
发布于 2019-05-27 05:58:55
要将密钥对(key和cert)导入到中,首先需要创建一个p12文件。虽然问题是“将加密的私钥导入jks",但我并不认为问题中的密钥是加密的,因为使用了”节点“选项。
因此,要导入密钥,并将cert导入到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“。
发布于 2015-02-06 12:33:49
我相信-import选项只允许我们导入证书,而不是密钥。看一下这个post,看起来您可能需要编写某种解决方案。
https://stackoverflow.com/questions/28342059
复制相似问题