ssl - 获取 "No certificate matches private key"

标签 ssl openssl certificate ssl-certificate keytool

这是我尝试过的命令序列:

一个。从商店中提取现有的证书 key :

keytool -v -importkeystore -srckeystore keystore -srcalias one -destkeystore temppp -deststoretype PKCS12 -srcstorepass passwordd -deststorepass passwordd

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

openssl pkcs12 -in temppp -out csr_private.key -nocerts -nodes -password pass:passwordd

使用提取的 key 生成 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'

生成自签名证书和 key :

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

使用自签名证书签署 csr:

openssl x509 -in request.csr -out signed_cert.pem -req -signkey ca_key.pem -days 1001

将签名证书和 csr key 导出到一个 p12 文件:

openssl pkcs12 -export -in signed_cert.pem -inkey csr_private.key -out file.p12 -name "one"

结果:

没有证书匹配私钥

  1. 我错过了什么?为什么我的最后一条命令不合法?
  2. 我计划执行“keytool -importkeystore”file.p12(应该在最后一步生成)来替换“keystore”中的“一个”privateKeyEntry。如 How to import an existing x509 certificate and private key in Java keystore to use in SSL? 中所建议。 基本上,我正在尝试编辑该条目以使用相同的 key ,但使用不同的证书。

最佳答案

修复方法是将“-nodes”添加到最后一个命令 (f)。
在第二个命令中,该 key 使用“-nodes”(无 DES 加密)导出,并且在最后一个命令中也应该相同。

关于ssl - 获取 "No certificate matches private key",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24471588/

相关文章:

apache - 如何使 Apache 将 http 请求代理到 https

c - Openssl crypto lib中有一个函数可以安全地输入密码吗?

azure - 获取单个 Azure Web 角色以支持单独 SSL 证书上的多个域

google-chrome - "gclient sync"由于 SSL3 证书验证失败而失败

C# SSL 客户端消息未在服务器上打印

ssl - Heroku ACN(用于 SSL)失败 - 我的 DNS 是正确的。该怎么办?

ruby-on-rails - jruby-openssl 中已经初始化的常量

ios - SSL 操作失败并显示代码,同时向 iOS 设备发送推送通知

node.js - Jimp 读取 Url => 错误 : unable to verify the first certificate in nodejs

apache - htaccess https 到 http 重定向 - 仅适用于所有网址