创建 P12 证书时 OpenSSL 私钥错误

Dav*_*ave 5 openssl

我正在尝试从一些从 OpenSSL 创建的现有 .der 文件中创建 P12 证书。

当我尝试运行下面的命令时,出现错误。

C:\Windows\system32>openssl pkcs12 -export -out bundle.p12 -inkey <PATH>/PrivKey.der -in <PATH>/ClientSignedCert.der -certfile <PATH>/CACert.der
Run Code Online (Sandbox Code Playgroud)

我收到的错误:

Loading 'screen' into random state - done
unable to load private key
5688:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_lib
.c:696:Expecting: ANY PRIVATE KEY
Run Code Online (Sandbox Code Playgroud)

我不明白这个。我给 OpenSSL 一个私钥 (PrivKey.der)。导致此错误的原因可能是什么?

OpenSSL 1.0.1 2012 年 3 月 14 日(库:OpenSSL 1.0.1c 2012 年 5 月 10 日)
Windows 7 专业版。

小智 4

根据 openssl PKCS12 文档,您的-in-inkeycertfile 文件必须采用 PEM 格式。

\n\n

要将证书从 DER 转换为 PEM:

\n\n
x509 \xe2\x80\x93in ClientSignedCert.der \xe2\x80\x93inform DER \xe2\x80\x93out ClientSignedCert.crt \xe2\x80\x93outform PEM\nx509 \xe2\x80\x93in CACert.der \xe2\x80\x93inform DER \xe2\x80\x93out CACert.crt \xe2\x80\x93outform PEM\n
Run Code Online (Sandbox Code Playgroud)\n\n

要将密钥从 DER 转换为 PEM:

\n\n
rsa \xe2\x80\x93in PrivKey.der \xe2\x80\x93inform DER \xe2\x80\x93out PrivKey.key \xe2\x80\x93outform PEM\n
Run Code Online (Sandbox Code Playgroud)\n\n

Openssl PKCS12 文档

\n