.pfx
和.cert
证书文件有什么区别?
我们是分发.pfx
还是.cert
用于客户端身份验证?
.pfx
和.cert
证书文件有什么区别?
我们是分发.pfx
还是.cert
用于客户端身份验证?
有两个对象:private key,这是服务器拥有的,保密的,用于接收新的 SSL 连接;和公钥数学中链接到私钥,并提出了“公共”:它被发送到每个客户端作为连接的初始步骤的一部分。
证书名义上是公钥的容器。它包括公钥、服务器名称、有关服务器的一些额外信息以及由证书颁发机构(CA) 计算的签名。当服务器将其公钥发送给客户端时,它实际上发送了它的证书以及一些其他证书(包含签署其证书的 CA 的公钥的证书,以及签署 CA 证书的 CA 的证书,等等)。证书本质上是公共对象。
有些人使用“证书”一词来指定证书和私钥;这是一个常见的混淆来源。我个人坚持严格的定义,证书只是公钥的签名容器。
一个.pfx
文件是一个PKCS#12 档案:一个可以包含许多带有可选密码保护的对象的包;但是,通常,PKCS#12 存档包含证书(可能带有各种 CA 证书)和相应的私钥。
另一方面,.cert
(或.cer
或.crt
)文件通常包含单个证书,单独且没有任何包装(没有私钥,没有密码保护,只有证书)。
我知道这是一个有一年历史的线程,但是对于未来的读者,如上所述,不,您不分发 .pfx 文件,因为这是包含私钥的文件。您可以通过此处描述的方法从 .pfx 文件中提取和分发证书(这是公开的):https ://stackoverflow.com/questions/403174/convert-pfx-to-cer
.pfx 和 .cert 证书文件有什么区别?
我们是否分发 .pfx 或 .cert 用于客户端身份验证?
这取决于使用的过程。
设置外部客户端以使用证书进行身份验证的典型过程如下:
在上述场景中,“.cert”被发送回客户端。
在内部,许多组织将为其员工执行此过程。在这种情况下,会发生以下情况:IT 人员为员工生成公钥和私钥对以及证书签名请求。然后,他们签署公钥(使用他们的私有证书颁发机构)并将生成的证书连同相应的私钥和所有中间 CA 证书(“证书链”)放在用户的密钥库中。
在这种情况下,“.pfx”(或“.pem”)将是合适的,因为它包含客户端身份验证所需的所有项目:私钥、证书和证书链。
搜索“证书自动注册”,为您的企业用户和设备自动执行此过程。