.cer&pfx文件有什么区别?

人们常说 –

cer – 以X.509标准格式存储的证书。 此证书包含有关证书所有者的信息…以及公钥和私钥。

pfx – 代表个人交换格式。 它用于在单个文件中交换公共和私人对象。 可以从.cer文件创build一个pfx文件。 也可以用来创build一个软件发行者证书。

**从这个链接得到ref 有一个cer,pvk和pfx文件有什么区别? **

但是没有人会说我们应该使用CERT文件,什么时候应该使用PFX文件。 如果可能的话,请讨论一下我们应该去CERT文件的情况,以及我们应该去找PFX文件的情况。 谢谢。

.pfx包含相关证书的公钥和私钥(不要在组织外共享); 它可以用于网站上的TLS / SSL,用于对消息或授权令牌进行数字签名,或者用于对合作伙伴系统进行身份validation。 .cer文件只有公钥(这是您通常与集成合作伙伴交换的内容); 它可用于validation令牌或客户端身份validation请求,这是SSL握手中服务器的HTTP客户端接收的内容。

根据我的经验(并不像我想要的那样庞大),我在configurationIIS服务器上的https绑定时使用了一个pfx文件(因为这包含公钥和私钥,所以你只需要这个文件就可以), cer文件只是密钥对的公共部分(大部分时间),在nginx或apache服务器上configurationsslstream量时,您需要将它与.key文件一起使用,

据我所知,没有更多的硬性理由使用这个或那个,

如前所述,问题是苹果和橘子,因为cer文件只是公钥,但pfx文件包含公钥和私钥。

所以一个更公平的问题是什么时候你想要使用一个pfx文件而不是一个pem文件。 鉴于pfx文件被批评为过于复杂,第二个问题的公平答案可能是:如果您运行的是IIS,那么您只会使用pfx文件,而且它的configuration绝对不会让您使用任何其他。

来源: https : //en.wikipedia.org/wiki/PKCS_12 (引用的脚注是Peter Gutmann的一篇文章。)

SSL使用asynchronousencryption,这意味着一个密钥(私钥)被赋予“拥有”密钥对的服务器,而另一个密钥(公钥)则是自由分配的。
它被称为asynchronous,因为用私钥encryption的数据只能用公钥解密,而用公钥encryption的数据只能用私钥解密。 所以如果你想把一些安全的东西发送给所有者,你可以用私钥对它进行encryption,而且他将是唯一一个能够解密它的人。 如果所有者想要certificate他发送了一些东西,则用私钥对其进行encryption,任何拥有该公钥的人都可以对其进行解密。 (安装证书后,通常通过浏览器或电子邮件工具在幕后完成。)
由于所有者想要保密私钥,它将被密码保护并且只被提供给拥有的服务器(通常在PFX或P12文件中)。 但公钥将自由分发(通常在CER文件中)。