ssl - 为什么证书颁发机构 (CA) 从中间机构而不是根机构颁发证书?

标签 ssl certificate ssl-certificate x509certificate ca

当购买数字证书时,它会通过递归地遵循以根 CA 证书结尾的“颁发者”链进行验证。

查看一些销售证书的公司的网站可以看出,他们的证书实际上是由同一家公司的中间 CA 颁发的。叶证书和(可免费下载的)中间证书必须都安装在 Web 服务器上才能工作。

各种文档解释了此设置如何在中间 CA 与根 CA 是不同公司的情况下工作。但在这里他们是为同一家公司服务的。

有谁知道 CA 从中间 CA 而不是它自己的根 CA 颁发证书的一些关键原因?我认为这种情况有助于各种管理方案(例如,可以将中间证书设置为在根证书之前过期)但在某种程度上我在这里猜测。

谢谢

最佳答案

这样做有几个原因。

  1. 根 CA 是信任层次结构中的顶级 CA。当前的 PKI(由 RFC5280 标准化)不提供任何撤销根 CA 证书的方法。因此,根 CA 妥协(如果根 CA 充当颁发 CA,则更有可能)是一个非常严重的问题。
  2. 根据第 1 段,根 CA 非常敏感,它(至少应该)需要高级别的安全性和非常有限的访问权限。高负载请求流不可能遵循高安全性。
  3. 由于根 CA 为组织提供了一个通用的信任 anchor ,并且每家公司可能需要不同级别的保证和安全性,因此您需要拥有很多根 CA,每个需要一个。

前面已经说过跨平台(Windows, *nix, Linux, Mac)的根CA维护不是那么简单,设置一个单一的根CA并在单一根下建立多个中间CA是合理的。在这种情况下,每个中间 CA 将受到特定用途(例如,一个用于 SSL 证书、一个用于代码签名证书、一个用于电子邮件等)和策略的限制。

在这种情况下,如果颁发 CA(中间 CA)出现问题,CA 所有者可以撤销受损的中间 CA,而无需经历从客户端移除根 CA 的漫长而复杂的过程。

此外,中间 CA 也发生了相对变化,以反射(reflect)大多数现代 PKI 趋势。使用单根 CA 可以更轻松地实现新的中间 CA,而无需经历向客户端添加根 CA 的漫长而复杂的过程。

总结原因:更高的安全性和更好的可管理性。

关于ssl - 为什么证书颁发机构 (CA) 从中间机构而不是根机构颁发证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26659333/

相关文章:

ssl - 为 Jetty 服务器禁用 TLS_RSA_WITH_3DES_EDE_CBC_SHA

python - 尝试抓取网页时出现 SSL 错误

ssl - Newman 加载 pfx 证书,但不用于连接到端点

iis - 如何从命令提示符将 SSL 证书分配给 IIS7 站点

java - Winstone 为 SSL 身份验证配置自签名 keystore

android - 如何信任 Android 的 Cordova 应用程序中的证书?

macos - 仅当应用程序从 cron 的打开命令打开时处理证书时应用程序出现不合理的系统错误

docker - 在 Kubernetes 上使用 TCP 连接的 SSL?

PHP - 无法连接到 FTP - 隐式 SSL 端口 990

android - 在系统上下文中的 Android 上安装 CA 证书