欢迎光临
我们一直在努力

【Web】证书(SSL/TLS)与域名之间的关系:完整、通俗、可落地的讲解

📘

HTTPS 是否生效,完全取决于:

浏览器访问的“域名”是否与证书中声明的“域名”完全匹配。

换句话说:

HTTPS 的根本规则就是:域名要对得上。

而“对得上”又分三种方式:

  • 精确匹配
  • wildcard 匹配(通配符证书)
  • SAN(多域名证书)匹配
  • 这三种方式决定了:

    • 证书能覆盖哪些域名?
    • 能否支持多级域名?
    • *.example.com 的能力到底有限在哪里?
    • 为什么 *.*.api.example.com 不合法?
    • 为什么实际业务经常用 SAN?

    以下按照“是什么 → 为什么 → 怎么做 → 实战规则”结构逐点说明。


    一、证书绑定域名:是什么?

    HTTPS 证书(SSL/TLS Certificate)中包含:“哪些域名是合法的”。

    证书可以绑定两类域名字段:

    ① Common Name(CN)

    早期使用,现在只是兼容项。
    通常 CN 会填写主要域名:

    api.example.com

    ② SAN(Subject Alternative Name)

    🚀 现代浏览器真正用来匹配的就是 SAN 列表。
    一个证书可以绑定多个域名:

    api.example.com
    www.example.com
    v1.api.example.com

    只要域名在 SAN 列表里,证书就合法。


    二、证书为什么需要和域名匹配?

    HTTPS 的目标是:

    保证你访问的网站,真的是它自己声称的域名,而不是假冒的服务器。

    因此:

    • api.example.com 就必须用能证明自己确实是 api.example.com 的证书
    • a.api.example.com 是另一个域,不能自动使用它父域的证书
    • 安全性要求高于便利性

    这也是为什么“通配符有限制”的核心原因:

    为了防止一个证书被滥用到大量不该访问的域名上。


    三、证书如何匹配域名?(三种方式)

    ① 精确匹配(最严格、最安全)

    证书写的是:

    api.example.com

    浏览器访问:

    • api.example.com ✔
    • www.example.com ❌
    • v1.api.example.com ❌
    • example.com ❌

    精确匹配最安全,但扩展性差。


    ② wildcard 匹配(通配符证书)

    写法如下:

    *.example.com

    这是浏览器和 CA 都支持的,但能力有限:

    ✔ 能匹配:

    • a.example.com
    • b.example.com
    • anything.example.com

    ❌ 不能匹配:

    • example.com(根域不能匹配)
    • a.b.example.com(多级不行)
    • v1.api.example.com(不是它这一层的)
    • *.*.example.com(非法格式)

    Wildcard 的三大核心限制(非常重要)

  • 只能有一个 * 号,且只能放在最左端:

    *.example.com ✔
    *.*.example.com ❌
    api.*.example.com ❌
    *.a.example.com ❌

  • 只能匹配“一层子域”

    *.example.com 只能匹配 a.example.com

  • 不能“向上”匹配父域

    *.example.com 不能匹配 example.com

  • 这些限制都是为了防止安全风险。


    ③ SAN 多域证书(最灵活、企业最常用)

    可写多个完全不同层级的域名:

    example.com
    www.example.com
    api.example.com
    v1.api.example.com
    admin.v1.api.example.com

    特点:

    • ✔ 可以覆盖任意层级
    • ✔ 可以混合不同子域
    • ✔ 可把所有服务整合到一个证书里
    • ✘ 价格较高

    适用于:

    • 微服务多域结构
    • 多层 API 域名
    • SaaS 平台大量子域

    四、多级域名证书匹配:关键结论

    ❗ 结论 1:没有所谓“五级证书”“六级证书”

    证书体系只有三种:

    • 单域名
    • wildcard(一层子域)
    • SAN(多个具体域名)

    域名层级多少不重要,重要的是:

    “浏览器访问的域名是否在证书允许的范围内”。


    ❗ 结论 2:通配符不能用在多层

    很多人想写:

    *.*.api.example.com

    但这是非法的。

    原因:

    • 不符合 RFC / CA/B Forum 标准
    • 通配符只能使用一次
    • 通配符只能在最左端标签
    • 通配符不能匹配多层域

    所以:

    你想覆盖五级域名:

    a.b.c.api.example.com

    那么能做的只有:

    ✔ 单独写入 SAN

    或者

    ✔ 在更深一层使用通配符,例如:

    *.c.api.example.com → 覆盖所有 [任意].c.api.example.com
    *.b.c.api.example.com → 覆盖所有 [任意].b.c.api.example.com

    但每一个 wildcard 仍然只能覆盖“一层”。


    ❗ 结论 3:Wildcard 不会递归匹配

    *.example.com

    不能覆盖:

    • a.b.example.com
    • admin.api.example.com

    这是浏览器强制要求的,不是某家 CA 的限制。


    五、如何为你的多级域名正确配置证书?(最实用)

    假设你的域名结构如下:

    example.com
    www.example.com
    api.example.com
    v1.api.example.com
    admin.v1.api.example.com
    inner.admin.v1.api.example.com

    如果你的业务结构是:

    • 子域很多
    • 层级不固定
    • 通配符无法覆盖多层

    👉 最佳方案:SAN 证书
    把需要的域名全写进去。


    如果你的业务只有“一层子域”

    a.example.com
    b.example.com
    c.example.com

    👉 用:

    *.example.com

    即可。


    如果你的业务包含“多层、但同层很多”

    例如:

    xxx.api.example.com
    yyy.api.example.com
    zzz.api.example.com

    👉 用:

    *.api.example.com

    刚刚好。


    六、总结(最重要的 7 条原则)

  • 证书必须与域名一一对应才能通过 HTTPS 校验。
  • Wildcard 只能匹配一层子域,不支持递归。
  • *Wildcard 只能有一个 ,且必须在最左侧。
  • *.*.api.example.com 永远不合法,不会被任何 CA 签发。
  • 没有所谓“多级证书”,只能用 SAN 或更深层的 wildcard。
  • 多级域名想全部覆盖,最安全也是最常用的是 SAN。
  • “父域”与“子域”在证书上没有继承关系,各自必须独立声明。
  • 赞(0)
    未经允许不得转载:171主机测评 » 【Web】证书(SSL/TLS)与域名之间的关系:完整、通俗、可落地的讲解
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址