将 DER 转换为 PEM,结果文件中没有关键部分
Convert DER to PEM, no key part in the resulting file
我已将 CER/DER 证书转换为如下内容:
openssl x509 -inform der -in hostname.cer -out hostname.pem
生成的 PEM 文件仅包含:
-----BEGIN CERTIFICATE-----
... contents here..
-----END CERTIFICATE-----
但是没有包含关键部分,这正常吗?所以我无法在 PHP/SOAPClient 中使用它,因为它无法连接到主机。
另一方面,我已成功将 PFX/P12 格式转换为 PEM,生成的文件包含证书和密钥。但在上面的 DER 格式证书的情况下它没有。
我用来将 PFX 转换为 PEM 的是:
openssl pkcs12 -in ALEXANDRU_CATALIN.pfx -clcerts -nokeys -out ALEXANDRU_CATALIN_mycert.pem
openssl pkcs12 -in ALEXANDRU_CATALIN.pfx -nocerts -nodes -out ALEXANDRU_CATALIN_mykey.pem
然后将两个文件的内容合并到一个名为 bundle.pem
的文件中。这行得通,我以一个带有机器人证书和密钥的文件结束,它通过 SOAP 连接到 API,但正如我所说,PEM 的 DER 没有给我一个有效的证书。
对此有什么想法吗?我错过了什么吗? DER 格式是否不包含密钥?我还需要其他东西吗?
默认情况下 public 键不被转换。
但是您可以通过添加参数 -pubkey
来导出它
openssl x509 -inform der -in hostname.cer -out hostname.pem -pubkey
将为您提供如下 PEM 文件:
-----BEGIN PUBLIC KEY-----
{...}
-----END PUBLIC KEY-----
-----BEGIN CERTIFICATE-----
{...}
-----END CERTIFICATE-----
DER 证书文件不包含私钥。所以没有私钥可以转换。只有 PFX 或 "multi-PEM" 可以同时包含证书和私钥。
我已将 CER/DER 证书转换为如下内容:
openssl x509 -inform der -in hostname.cer -out hostname.pem
生成的 PEM 文件仅包含:
-----BEGIN CERTIFICATE-----
... contents here..
-----END CERTIFICATE-----
但是没有包含关键部分,这正常吗?所以我无法在 PHP/SOAPClient 中使用它,因为它无法连接到主机。
另一方面,我已成功将 PFX/P12 格式转换为 PEM,生成的文件包含证书和密钥。但在上面的 DER 格式证书的情况下它没有。
我用来将 PFX 转换为 PEM 的是:
openssl pkcs12 -in ALEXANDRU_CATALIN.pfx -clcerts -nokeys -out ALEXANDRU_CATALIN_mycert.pem
openssl pkcs12 -in ALEXANDRU_CATALIN.pfx -nocerts -nodes -out ALEXANDRU_CATALIN_mykey.pem
然后将两个文件的内容合并到一个名为 bundle.pem
的文件中。这行得通,我以一个带有机器人证书和密钥的文件结束,它通过 SOAP 连接到 API,但正如我所说,PEM 的 DER 没有给我一个有效的证书。
对此有什么想法吗?我错过了什么吗? DER 格式是否不包含密钥?我还需要其他东西吗?
默认情况下 public 键不被转换。
但是您可以通过添加参数 -pubkey
来导出它openssl x509 -inform der -in hostname.cer -out hostname.pem -pubkey
将为您提供如下 PEM 文件:
-----BEGIN PUBLIC KEY-----
{...}
-----END PUBLIC KEY-----
-----BEGIN CERTIFICATE-----
{...}
-----END CERTIFICATE-----
DER 证书文件不包含私钥。所以没有私钥可以转换。只有 PFX 或 "multi-PEM" 可以同时包含证书和私钥。