将 Godaddy 证书转换为 .pfx 文件

Mar*_*ris 6 openssl

我从 GoDaddy 获得了 ssl 证书并下载了证书和两个文本文件。我需要一个用于 Azure Web 服务应用程序的 pfx 文件。Godaddy 给我发送了两个 .crt 文件和两个文本文件,其中一个是名为“generate-private-key.txt”的文本。问题 1:私钥文本文件作为 OpenSSL pfx 文件转换实用程序的密钥文件是否有效输入。问题 2:.crt 文件名中是否有任何指示要使用哪个文件作为 OpenSSL 实用程序的输入。

Sha*_*ell 6

首先,您通常会使用您的私钥生成证书请求,然后将请求提交给 CA(在本例中为 Go Daddy)。这样 CA 就不会拿到你的私钥。

如果您只是在没有证书请求的情况下要求证书,那么 CA 将必须为您生成一个私钥(这不是一个好主意,因为这是使用您的证书的关键,现在 CA 可以访问它... )。如果您这样做了,那么 CA 必须向您提供私钥以及在其上设置的任何密码(如果有)。

还建议您获取生成的证书与 CA 根证书之间的中间证书。这些很有用,因为某些客户端在没有提供它们的情况下将无法连接到您的服务器,例如 firefox 浏览器。

因此,您希望将私钥、CA 提供的公共证书和 CA 中间证书组合成一个 PFX 文件,供您的 Web 服务器使用。

私钥可以是一到两种主要格式:

  • DER - 这是一种二进制格式
  • PEM - 这是一种文本格式 - 它是 DER 格式的 base64 版本,带有页眉和页脚。

证书密钥可以有多种格式,但最有可能的是: - DER - 这是一种二进制格式 - PEM - 这是一种文本格式 - 它是 DER 格式的 base64 版本,带有页眉和页脚。

文件扩展名并不总是格式的最佳指标。尝试在文本编辑器中查看它们,看看它是否像带有页眉和页脚的二进制或 base64 文本。

openssl 中生成 PFX 文件的基本命令是pkcs12命令。

您通常会执行以下操作:

openssl pkcs12 -export -out name.pfx xxx

“xxx”在哪里取决于您必须提供的内容。例如,如果您有:

  • key.pem - pem 格式的私钥
  • cert.pem - pem 格式的公钥
  • inter.pem - pem 格式的 CA 中间证书

那么整个命令将是:

openssl pkcs12 -export -out name.pfx -inkey key.pem -in cert.pem -certfile inter.pem

如果您不想包含 inter.pem,只需删除“-certfile inter.pem”参数即可。

如果您的任何文件是 DER 格式,您需要先将它们转换为 PEM 格式。

对于证书,您可以像这样使用 openssl x509命令:

openssl x509 -in cert.der -inform der -out cert.pem

转换私钥将取决于使用 openssl rsaec命令的私钥类型。转换密钥和证书的命令格式基本相同,但您使用 rsa 或 ec 而不是 x509。