用于cURL的CA公共证书包


CA Public Certificate Bundle for cURL

我有一个启用SSL的电子商务网站,使用cURL进行支付处理。一切都运行得很好,但最近我了解到"CA Public Certification Bundle for cUrl"是一个好主意,它用于cUrl连接。

如果这是真的,那么有人能告诉我如何或它比使用标准SSL更好/不同吗?

SSL不是已经为所有连接提供了某种认证吗?

任何连接到HTTPS服务器的HTTPS客户端都将获得其证书(实际上,它可以是一个证书链)。此服务器证书必须由客户端验证以验证服务器。

这通常是通过使用在客户端上配置为信任锚的许多CA证书来完成的(即,这是您在遇到服务器证书之前预先信任的)。客户端尝试在服务器链的最后一个元素与其信任锚中的一个CA证书之间构建一个链。如果存在这样的有效链,则服务器证书是可信的。

CA证书包"将是一组信任锚。您可以通过寻找愿意信任的ca来构建自己的ca,也可以使用现有的包。大多数操作系统或浏览器都有一个现有的捆绑包。cURL本身没有,但它可以依赖于预定义的位置(在编译时设置),或者它也建议使用Firefox包(通过转换机制)。(你可以通过额外的选项覆盖默认设置,在命令行或通过API。)

证书绑定(您也提到了)与CA证书包无关。事实上,它几乎是相反的。而不是依赖第三方信任锚(证书颁发机构),您明确地"pin";您知道直接受信任的一组服务器证书。它们不用于验证其他证书,相反,您将获得的证书与您期望的该主机的确切证书进行比较(或者至少比较公钥)。这更像是有一个从服务器名到证书(或到公钥)的引用映射,并将从该主机获得的结果与已有的引用进行比较。当然,这在实践中只能适用于相当小的一组证书,不像CA (PKI)方法,它旨在让您对以前从未遇到过的各方进行身份验证(通过第三方:CA)。

与使用标准SSL相比,它有什么更好/不同之处?SSL不是已经为所有连接提供了某种认证吗?

使用CA证书包与使用"标准SSL"没有什么不同,它是SSL/TLS连接通常使用的。您通常看不到它,因为CA包通常与您的客户机(或操作系统)一起提供。请注意,严格地说,这与SSL/TLS本身是正交的,后者主要是说您应该对服务器进行身份验证。证书验证(PKI方式,通过CA证书)在另一个规范中定义,还补充了关于如何验证证书中的名称的规范(当然还有HTTPS规范)。

在这里找到了一个很好的答案。上面的评论真的很有帮助。我要找的关键字是"证书固定"。