获取"没有证书与私钥匹配"

yai*_*air 10 ssl openssl certificate keytool ssl-certificate

这是我尝试的命令序列:

一个.从商店中提取现有证书密钥:

keytool -v -importkeystore -srckeystore keystore -srcalias one -destkeystore temppp -deststoretype PKCS12 -srcstorepass passwordd -deststorepass passwordd
Run Code Online (Sandbox Code Playgroud)

湾 从导出的证书中提取私钥:

openssl pkcs12 -in temppp -out csr_private.key -nocerts -nodes -password pass:passwordd
Run Code Online (Sandbox Code Playgroud)

C.使用提取的密钥生成csr:

openssl req -nodes -sha256 -new -key csr_private.key -out request.csr -subj '/C=IL/ST=Unknown/L=Unknown/O=Bla/OU=Bla/CN=BLAAAA'
Run Code Online (Sandbox Code Playgroud)

d.生成自签名证书和密钥:

openssl req -x509 -newkey rsa:2048 -keyout ca_key.pem -nodes -sha512 -days 4096 -subj '/C=IL/ST=Unknown/L=Unknown/O=Bla Bla/OU=BLA/CN=FOOO' -out ca.pem
Run Code Online (Sandbox Code Playgroud)

即 使用自签名证书对csr进行签名:

openssl x509 -in request.csr -out signed_cert.pem -req -signkey ca_key.pem -days 1001
Run Code Online (Sandbox Code Playgroud)

F.将签名证书和csr密钥导出到一个p12文件:

openssl pkcs12 -export -in signed_cert.pem -inkey csr_private.key -out file.p12 -name "one"
Run Code Online (Sandbox Code Playgroud)

结果:

没有证书与私钥匹配

  1. 我错过了什么?为什么我的上一个命令不合法?
  2. 我打算做"keytool -importkeystore"file.p12(应该在最后一步中生成)来替换"keystore"中的"one"privateKeyEntry.正如在建议如何导入现有的X509证书和私钥在Java密钥库中的SSL使用?.基本上我正在尝试编辑该条目以获得相同的密钥,但是使用不同的证书.

yai*_*air 8

修复是将"-nodes"添加到最后一个命令(f).
在第二个命令中,密钥是使用"-nodes"导出的(没有DES加密),并且在最后一个命令中它也应该是相同的.