将.crt文件转换为.cer和.key

18
我被要求帮忙转换证书以进行更新。我收到了域名.crt文件和一些中间.crt文件,但没有.key文件。他们希望我将CRT转换为.CER和.KEY文件。
我查看了许多网站,包括以下网站,但它们要么说我需要.key文件,而我没有,要么说我必须在本地安装它,然后导出它,但是在使用MMC并尝试导出时,.PFX选项是灰色的。

http://community.spiceworks.com/topic/367133-i-cant-convert-a-ssl-crt-to-pfx-i-need-help-with-this

我还尝试了OpenSSL命令PKCS12 -EXPORT...将其转换为.P12文件,但出现“无法加载私钥”的错误。如果我打开它并选择“复制到文件…”,我可以获得.CER文件,但没有其他内容。
谢谢你的帮助。

此问题与编程无关,因此不属于讨论范围。 - Eugene Mayevski 'Callback
2个回答

18

证书文件中是否包含私钥?换句话说,是否有一个以

开始的部分?

-----BEGIN RSA PRIVATE KEY-----

文件中有吗?

如果没有,那么私钥将存储在单独的文件中。

无论如何,要更新证书,您不需要证书,而是需要证书签名请求(CSR),您将将其发送给 CA,并收到返回的证书(或在某些情况下,CA 可能使用先前存储的 CSR 生成新的证书)。

您可以使用以下命令生成新密钥:

openssl genrsa -out <private key file name> 2048

然后使用以下命令生成CSR:

openssl req -new -key <private key file name> -out <csr file name>

您保留私钥并将CSR发送给CA。返回时,您将获得证书,与中间证书和私钥一起提供给所使用的软件。在某些情况下,它们需要在单独的文件中,而在其他情况下,您可以将它们组合到一个文件中。


谢谢。CRT文件没有“BEGIN RSA PRIVATE KEY”部分。我需要与发送给我的人讨论这个问题。 - user1970778
我遇到了一个不同但类似的问题(从CRT和Key转换为PFX),而 -----BEGIN RSA PRIVATE KEY----- 是帮助使 openssl 命令正常工作的线索。谢谢。 - jiminy
1
如果我只有csr文件,能否将其转换回key文件? - TommyQu
@TommyQu CSR?那是证书请求,它只有有限的用途。你是指证书吗?如果包含证书的文件也包含密钥(在某些配置中有时会出现这种情况),那么你可以直接获取它。否则不行,这正是证书的全部意义,证书是公开的,私钥是私有的,如果你可以从证书生成私钥,那就违背了整个目的... - jcaron
@jcaron 谢谢!所以如果我想在我的服务器上启用 HTTPS。 如果我丢失了密钥文件,我只剩下 csr 和 crt 文件。 没有生成新的密钥,我将无法使其正常工作,是这样吗? - TommyQu

9

您无需将CRT转换为PFX。您可以将CRT转换为CER,然后将其加载到证书存储中。

https://support.comodo.com/index.php?/Knowledgebase/Article/View/361/17/how-do-i-convert-crt-file-into-the-microsoft-cer-format

  1. 右键单击CRT文件,选择“打开”。
  2. 导航到“详细信息”选项卡。
  3. 点击“复制到文件…”
  4. 点击“下一步”。
  5. 选择“Base-64编码的X.509(.CER)”选项,然后点击“下一步”。
  6. 给你的导出文件一个名称(例如,“www.mysite.com-2019.cer”),然后点击“保存”。
  7. 点击“下一步”。
  8. 确认详细信息,然后点击“完成”。
  9. 打开IIS,并导航到“服务器证书”页面。
  10. 点击“完成证书请求”(在右侧导航栏中)。
  11. 选择您的新CER文件,指定一个友好名称(例如,“www.mysite.com-2019”),然后点击“确定”。

您应该会在“服务器证书”页面中看到新的证书,位于您选择的“友好名称”下。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接