生成.p12文件时,没有证书与私钥匹配

Jac*_*ack 7 ssl pkcs#12

我已经成功生成了.p12文件但是我得到了一条消息如下:

C:\OpenSSL-Win32\bin>openssl pkcs12 -export -inkey mykey.key -in exported.pem -out myfile.p12
Run Code Online (Sandbox Code Playgroud)

将"屏幕"加载到随机状态 - 完成 没有证书与私钥匹配

谁能告诉我这个错误到底是什么?

此外,文件的大小myfile.p12是0KB,当我尝试打开它时,我在一个小窗口中用OK按钮得到以下消息:

`无效的公钥安全对象文件

此文件无效,可用作以下内容:个人信息交换`

请澄清.

谢谢

Ash*_*til 9

资源

OpenSSL说,对证书进行DER编码后,没有证书与私钥匹配。在创建PKCS#12之前,只需将其更改为PEM编码即可。

  1. 创建密钥对openssl genrsa -out aps_development.key 2048

  2. 创建CSRopenssl req -new -sha256 -key aps_development.key -out aps_development.csr

  3. 将CSR上传到开发人员门户以获得证书 aps_development.cer

  4. 转换证书openssl x509 -inform DER -outform PEM -in aps_development.cer -out aps_development.pem

  5. 构建PKCS#12openssl pkcs12 -inkey aps_development.key -in aps_development.pem -export -out aps_development.p12

  • 在我的情况下,正确的顺序/命令如下: Openssl pkcs12 -export -outalwayson.pfx -inkey C:\ssl\private.key -in C:\ssl\ca_bundle.crt -in C:\ssl\certificate.crt因此,看起来证书之前的中间体和捆绑包。 (7认同)
  • 我发现了我的问题:证书的顺序不正确。某种程度上这很重要,并给您带来误导性信息_没有证书与私钥_匹配。 (4认同)
  • 找到了另一个解决方案:_cat domain.crt middle.crt ca.crt > bundle.crt_ _openssl pkcs12 -export -out cert.pfx -inkey key -in bundle.crt_ (2认同)

小智 6

就我而言,我实际上指定了错误的证书——即证书用于一个系统,而私钥用于另一个系统。所以错误消息是准确的!


小智 6

我也有完全相同的问题。下面的两个命令就像一个魅力。

cat domain.crt intermediate.crt ca.crt > bundle.crt 

openssl pkcs12 -export -out cert.pfx -inkey key -in bundle.crt
Run Code Online (Sandbox Code Playgroud)