【问题标题】:Certificates - .cer + .pfx证书 - .cer + .pfx
【发布时间】:2013-09-10 19:44:36
【问题描述】:

我正在学习如何使用证书,但我无法弄清楚 .pfx 和 .cer 之间的关系

我知道 .cer 是证书,而 .pfx 是可能包含各种信息(包括我猜的证书)的文件。

例如,在工作中有一个应用程序使用证书并使用 xml 来引用那些文件

<node name="Traffic_Watcher">
    <map />
    <entry key="certificatePath" value="traffic_watcher.cer" />
    <entry key="privateKeyFile" value="traffic_watcher.pfx" />
    <entry key="privateKeyFilePassword" value="password" />
</node>

为什么需要这两个文件?这是正常的还是只是这个应用程序?

【问题讨论】:

    标签: security ssl certificate


    【解决方案1】:

    pfx file 是一个密钥库,它是一个包含私钥、公钥和证书的容器。它也可以受密码保护,因为在这种情况下是为了保护私钥。

    证书文件包含一个与身份绑定并签名的公钥。

    看起来该应用希望将证书放在一个文件中,而将私钥放在另一个文件中。可以在 pfx 中同时包含两者,但在这种情况下,应用正在寻找 2 个不同的条目。

    拥有一个单独的证书文件并不少见,因为您可以将其免费提供给其他人,这样他们就可以验证您的签名(从您的私钥创建),或者使用它来加密只有您的私钥可以的消息解密。在这种情况下,您永远不会提供包含私钥的 pfx 文件,但您可以提供 cer 文件。

    【讨论】:

    • @gtrig 如果我有自签名 *.pfx 证书,我需要在客户端手动安装 *.cer 证书,是否正确?如果我有有效的证书(不是自签名而是购买的),我就不需要 *.cer,不是吗?
    • @oblomov86 我相信您指的是信任列表。如果服务器上有自签名证书,并且您不想在浏览器中看到警告,则可以将此证书添加到 Windows、Java、Firefox 等中的受信任证书列表中。只有在您信任它的情况下才这样做.是的,有效证书应该已经由受信任的 CA 证书签名,因此您无需将其放入受信任的列表中。