为什么没有域 CA?

信息安全 tls 证书 公钥基础设施
2021-08-25 10:05:01

我被要求为客户端的 IIS 服务器提供签名的 SSL 证书。我之前曾为同一个客户端/域做过此操作,因此为不同的子域持有多个证书似乎是不必要的费用。

Godaddy 对一个有效期为 5 年的 SSL 证书收取大约 250 美元的费用。

然后我开始考虑使用通配符证书,但这似乎有点不安全,因为单一妥协的结果会产生更糟糕的结果。

这让我想知道,为什么没有所谓的域 CA?

域 CA 可以由根 CA 签名,并且有可能生成子域证书吗?

这对我来说似乎是合乎逻辑的,但这不存在,我想知道为什么。这里有更清晰的洞察力的人明白为什么不存在这样的东西吗?

2个回答

X.509 标准中(我链接到 RFC 5280,名义上是 X.509配置文件,但它包含 X.509 本身的可用副本;真正的 X.509 标准不是免费的),存在“域 CA” . 具体来说,这是一个 CA 证书,其中包含“dNSName”类型的名称约束扩展。请参阅第 4.2.1.10 节,其中包含以下段落:

DNS 名称限制表示为 host.example.com。任何可以通过简单地在名称左侧添加零个或多个标签来构建的 DNS 名称都满足名称约束。例如,www.host.example.com会满足约束,但 host1.example.com 不会。

这正是您正在寻找的。

现在的诀窍是获得一个现有的公认根 CA(即一个可以发出证书的 CA,Average Joe 的 Web 浏览器会接受而不会发出任何可怕的警告)来卖给你这样的证书。请记住,每台服务器向您收取 250 美元的商业 CA 的商业模式是能够继续向您收取每台服务器 250 美元的费用;由于您的目标正是避免给他们这么多钱,我猜他们可能会反对,例如,不签署您的 CA 证书。

此外,现有部署的 Web 浏览器对名称约束的支持可能有点不稳定。这不是有史以来使用最广泛的 X.509 功能。

正如这里有人提到的,这与“商业模式”有很大关系,但请考虑另一个角度。当根 CA 颁发证书(中间证书或其他证书)时,他们表面上处于为根 CA 下的所有证书维护 CRL 的责任。虽然通配符证书允许您将一个证书用于无限服务器,但域 CA 将允许您在自己的中间 CA 下创建无限证书。考虑到他们的商业模式,根 CA 可能会认为这是站不住脚的,而且您不会向他们支付无限单位的货币。