.cer与...之间的区别是什么? pfx文件

时间:2014-04-01 14:07:34

标签: ssl certificate

人们常说 -

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

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

**来自此链接的What is the difference between a cer, pvk, and pfx file? **

但没有人说我们何时应该使用CERT文件以及什么时候应该使用PFX文件。如果可能的话,请讨论我们应该去CERT文件&什么时候我们应该去PFX文件。感谢。

5 个答案:

答案 0 :(得分:75)

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

答案 1 :(得分:1)

2个工作原理稍有不同的方案:

场景1:
Web浏览器(客户端)使用SSL通过HTTPS访问网页(服务器)。

服务器具有包含两个密钥的.PFX文件。客户端连接到服务器上的网站,并且服务器将其公钥(.CER文件)的副本发送到客户端,作为SSL握手的一部分。客户端随后生成“会话密钥”,并使用从服务器接收的公共密钥对其进行加密。然后将会话密钥发送回服务器并解密以确认其真实性。如果成功,则客户端和服务器现在都将共享“会话密钥”以使用对称加密进行通信(即,客户端和服务器现在都将使用同一会话对彼此之间的所有消息进行加密和解密,在您在地址栏中输入URL到看到网页出现之间,所有这些工作都是在Web浏览器后台进行的。

场景2:
应用程序(客户端)连接到FTP站点(服务器)

使用SSH远程桌面(客户端到服务器)
(两个例子都适用)

在这种情况下,两者 客户端和服务器具有自己的私钥和公钥对
(与该线程中提到的其他示例相反,该示例仅说明服务器何时拥有两个密钥,而客户端仅具有公共密钥)

现在,出于解释目的-让我们将“密钥对”标记为类似以下内容: A1 A2 =分别作为服务器的私钥和公钥
B1 B2 =分别作为客户的私钥和公钥

使用该模型,该线程中的先前帖子都在谈论服务器何时具有 A1 A2 .PFX文件),以及与客户仅共享 A2 .CER )的副本

FTP或SSH连接(还有其他示例)由 A1 A2 B1 B2组成键在整个客户端-服务器通信中。例如,
 -客户端连接到FTP服务器。
 -服务器将其公钥(A2)的副​​本发送给客户端。
 -客户端将自己的公钥(B2)发送回服务器,完成握手。
 -现在将使用非对称加密

服务器现在具有 A1 ,(自己的私有), A2 自己的公开)和 B2 客户公开)的副本
客户现在具有 B1 ,(其自己的私人), B2 其自己的公开)和< strong> A1 (服务器的公共

客户端到服务器的通信
客户端使用A2(服务器公共密钥)对绑定到服务器的邮件进行加密, 服务器使用A1(服务器私钥)解密它们

服务器到客户端通信:
服务器使用B2(客户端公共密钥)对绑定到客户端的消息进行加密, 客户端使用B1(客户端私钥)对其进行解密

关于.CER和.PFX文件类型,服务器具有自己的.PFX,不应将其分发到组织外部,而应将.CER文件分发给客户端。

更多信息可以在这里找到:
https://www.digicert.com/ssl-cryptography.htm

在这里:
https://serverfault.com/questions/107433/why-does-a-ssh-public-key-sit-on-the-server-and-not-with-the-client

答案 2 :(得分:0)

根据我的经验(它没有我想要的那么大)我在IIS服务器上配置https绑定时使用pfx文件(因为它包含公钥和私钥,你是只有那个文件很好),一个cer文件只是密钥对的公共部分(大多数时候),你需要在nginx或apache服务器上配置ssl流量时与.key文件一起使用它,

据我所知,使用其中一种方法没有其他理由,

答案 3 :(得分:0)

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

所以一个更公平的问题是你何时想要使用pfx文件而不是pem文件。鉴于pfx文件因过于复杂而受到批评,对第二个问题的公平回答可能是:如果您正在运行IIS并且其配置绝对不允许,您只会想要使用pfx文件你使用其他任何东西。

来源:https://en.wikipedia.org/wiki/PKCS_12 (参考脚注是Peter Gutmann的文章。)

答案 4 :(得分:-1)

SSL使用异步加密,这意味着一个密钥(私钥)被提供给拥有&#34;拥有的服务器。密钥对,而另一个密钥(公钥)是自由分配的 它被称为异步,因为使用私钥加密的数据只能使用公钥解密,而使用公钥加密的数据只能使用私钥解密。因此,如果您想要安全地向所有者发送内容,则使用其私钥对其进行加密,并且他将是唯一可以解密它的人。如果所有者想要证明他发送了某些内容,他会使用私钥对其进行加密,并且拥有该公钥的任何人都可以对其进行解密。 (安装证书后,通常由浏览器或电子邮件工具在幕后完成。) 由于所有者希望将该私钥保密,因此它将受密码保护,并且仅提供给拥有的服务器(通常在PFX或P12文件中)。但公钥将自由分发(通常在CER文件中)。