多级 TLS 证书的选项

Options for multi level TLS certificates

提问人:zeroByte 提问时间:11/11/2023 更新时间:11/11/2023 访问量:29

问:

下面是我面临的问题和我迄今为止找到的解决方案的大脑转储。我期待您的意见!

用例我希望在不同的子域中公开不同的服务,同时在主机名中对几个阶段进行编码。 这将导致类似

  • service1.dev.company.tld (英语)
  • service2.dev.company.tld (服务2.dev.company.tld)

我还可以想象给各个团队更大的灵活性,并将整个领域树专用于他们,然后

  • whatever1.whatever2.project.company.tld

这特别好,因为我甚至可以通过 NS/SOA 记录委派这些树的管理。

据我了解,此要求通常称为多级子域。 我做了一些研究并找到了一些解决方案,但似乎没有一个能真正完全捕捉到我想要的东西。因此,我特别在寻找以下内容:

  • 关于我是否正确评估手头选项的一些输入
  • 为什么我真正在寻找的东西目前在市场上不存在一些理由。

解决方案方法

  • 多域 (SAN) 证书...覆盖 SANS 等。hard-coded1.dev.company.tld, hardßcoded2.dev.company.tld
    • 如果与通配符 SAN 结合使用,则会随着阶段数而扩展,因此相当好。
    • 最多允许 1 个深层。这严重阻碍了团队在下游使用它的方式。
    • 每当发生任何变化时,都需要重新生成/重新请求。
  • 私有 PKI
    • 使用自定义根 CA 对中间
      • 在其基本约束中具有 CA=true
      • 使用 X509 nameConstraints 扩展将证书生成限制为 *.dev.company.tld
    • 可扩展到我想要的任何内容,相当容易实现
    • 是私有的,所以我需要要求每个人都信任所说的根 CA。 ...这不能指望每个人都能做到,尤其是与我打交道的外部各方
  • Let's Encrypt 风格的 ACME
    • 只要我能显示所有权,就会即时验证特定域
    • 不花任何钱
    • 要求我有基础设施来自动执行证书请求、所有权验证和证书预配
    • 不允许 (?) 让我在 OV 级别证书的证书/go 上粘贴其他信息
      • 机构/部门信息

在我看来,私人PKI方法似乎是最自然的;但是,如前所述,我不能指望第三方支持此解决方案。我已经为内部系统实施了该解决方案。理想情况下,我希望有这个解决方案,但要得到公众的信任。不幸的是,我似乎找不到愿意提供具有给定权限的中间体的根 CA,特别是名称约束和 CA=true 的组合(实际上为什么?

这让我只能使用 Let's Encrypt 免费获得 ACME 证书。虽然从技术角度来看,这肯定可以正常工作(我已经在野外看到过),但我不知何故认为 Let's Encrypt 更像是一个“真正的证书太贵了”的选择。这可能只是我这边的偏见,因为我更频繁地在没有预算从付费 CA 获得它的网站上看到它。

如果我免费从公共供应商那里重新生成通配符 SAN 证书,我也可以从此过上幸福的生活。 因此,假设我为自己获得了(子)域列表的通配符 SAN 证书。然后,每当我需要向证书添加新 SAN 时,我都不想付费。如果我证明拥有二级域名并支付一次费用,我希望能够根据需要(重新)请求所述证书。如果供应商提供这个,它也将完全满足我的需求。 但是,我不能每次需要添加新的 SAN 时都支付一百美元。

那是我快速的大脑转储;提前感谢您的输入!

SSL SSL证书 TLS1.2 x509

评论

1赞 Steffen Ullrich 11/11/2023
The option you don't seem to consider is that you back down from your multilevel subdomain idea since it complicates certificates too much. For now the only explanation I can extract from your question is that it would be "particularly nice". And you also ask "why something I am actually looking for does not currently exist on the market" w/o considering that others might have chosen different ways to approach what you want to do with multilevel domains.

答: 暂无答案