我需要为客户端创建一系列主机名,格式为 (live|test).(clientname).clients.example.org(例如 live.xyzltd.clients.example.org),每个主机名都有自己独立的 VirtualHost 容器,并通过 Apache 上的 HTTPS 运行。由于站点数量众多且地址稀缺,我无法为每个主机分配一个 IPv4,也无法使用服务器名称指示(当前库中几乎不支持),而且主机名的更改次数意味着主题备用名称也已过时。
理想情况下,我只需要 *.clients.example.org 的证书,因为理论上它可以覆盖所有内容,但 RFC 2818 不允许这样做。但是,由于我知道主机名将始终采用 * . * .clients.example.org 格式,是否可以创建包含多个通配符的证书来实现这一点?我将使用自签名证书,因此只要技术上可行,即使这不是以商业方式提供的也没关系。
答案1
您不能创建带有多个通配符的证书,这会破坏检查证书的方式。
但是您可以执行 *.clients.example.org,因为即使 RFC 2818 不允许,它实际上也可以与大多数 SSL 客户端一起工作。
答案2
通用名称中不能有多个通配符,但可以有多个通配符主题备用名称。例如,您可以添加以下 SAN:
*.xyzltd.clients.example.org *.abcltd.clients.example.org *.defltd.clients.example.org
但是,如果每个客户端只有两个子域,那么名称数量只能减半。您可以将命名方案更改为 testxyzltd.clients.example.org,这样它们都可以由一个 *.clients.example.org 证书覆盖。