我正在尝试从一些从 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 格式。
要将证书从 DER 转换为 PEM:
\n\nx509 \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\nRun Code Online (Sandbox Code Playgroud)\n\n要将密钥从 DER 转换为 PEM:
\n\nrsa \xe2\x80\x93in PrivKey.der \xe2\x80\x93inform DER \xe2\x80\x93out PrivKey.key \xe2\x80\x93outform PEM\nRun Code Online (Sandbox Code Playgroud)\n\n\n