通配符证书与普通多域名证书在部署运维上有什么区别

文章导读
通配符证书适合同一主域名下的多级子域批量保护,多域名证书适合跨主域名的独立站点聚合管理,选型主要看域名结构而非单纯的价格。
📋 目录
  1. 快速选型思路
  2. 核心区别与原理
  3. 部署配置实操
  4. 私钥安全管理
  5. 自动化续费流程
  6. 验证方法
  7. 常见坑
  8. 参考来源
A A

通配符证书适合同一主域名下的多级子域批量保护,多域名证书适合跨主域名的独立站点聚合管理,选型主要看域名结构而非单纯的价格。

先说结论:同一主域下子域多且变动频繁选通配符,跨主域或域名数量固定选多域名证书。

  • 适合:通配符用于 *.example.com 及其同级子域,多域名用于 example.com 与 test.net 组合
  • 重点看:未来是否频繁新增子域,以及是否涉及不同主域名
  • 别忽略:通配符私钥泄露会影响所有子域,多域名新增域名需重新审核

快速选型思路

选型阶段无需命令,先梳理域名清单:

1. 统计主域名数量:若只有一个主域名(如 example.com)且子域众多,倾向通配符。

2. 统计独立域名数量:若涉及 example.com、example.net 等多个主域,倾向多域名证书。

3. 评估变动频率:子域经常增加(如电商店铺子域)选通配符,域名固定选多域名。

核心区别与原理

通配符证书通过星号(*)匹配同一主域下的同级子域,例如 *.example.com 可覆盖 www.example.com 和 mail.example.com,但无法覆盖 a.b.example.com 三级子域。多域名证书依托主题备用名称(SAN)扩展,可在一张证书中绑定多个完全独立的域名,支持跨主域和跨后缀。

两者加密强度一致,均支持 RSA/ECC 等算法,区别在于保护范围和运维逻辑。通配符新增子域无需重新申请,多域名新增域名通常需提交审核并可能产生费用。

部署配置实操

证书文件通常包含公钥证书(.crt/.pem)和私钥(.key)。以下是 Nginx 和 Apache 的基础配置示例:

Nginx 配置示例:

server {
    listen 443 ssl;
    server_name *.example.com;  # 通配符域名
    # server_name example.com test.net;  # 多域名写法

    ssl_certificate /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/private.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
}

Apache 配置示例:

通配符证书与普通多域名证书在部署运维上有什么区别
<VirtualHost *:443>
    ServerName *.example.com
    # ServerName example.com test.net

    SSLEngine on
    SSLCertificateFile "/etc/httpd/ssl/cert.pem"
    SSLCertificateKeyFile "/etc/httpd/ssl/private.key"
</VirtualHost>

关键部署注意:通配符证书需部署在所有处理 HTTPS 流量的服务器上。若子域解析到不同 IP(如 CDN 回源或多负载均衡架构),需将证书文件和私钥安全同步分发到所有对应节点,否则 HTTPS 握手会失败。

私钥安全管理

通配符证书私钥权限过大,一旦泄露所有子域均受威胁,需严格执行以下安全措施:

1. 文件权限控制:私钥文件权限应设置为 600,属主为 root。

chmod 600 /etc/nginx/ssl/private.key
chown root:root /etc/nginx/ssl/private.key

2. 存储建议:避免将私钥提交至 Git 仓库。生产环境建议使用 secrets manager 或加密存储卷。

3. 分发风险:向多台服务器分发通配符私钥时,建议使用 ansible 等自动化运维工具加密传输,避免明文拷贝。

自动化续费流程

为避免证书过期导致业务中断,建议配置自动续费。以 Let's Encrypt 及 Certbot 为例:

1. 安装 Certbot 及 Nginx 插件。

2. 首次申请通配符证书(需 DNS 验证):

certbot certonly `--dns-plugin` -d "*.example.com" -d "example.com"

3. 配置定时任务自动续费并重载服务:

0 0 1 * * certbot renew `--quiet` `--post-hook` "systemctl reload nginx"

多域名证书若使用 HTTP 验证,需确保所有绑定域名均能解析到执行续费命令的服务器。

通配符证书与普通多域名证书在部署运维上有什么区别

验证方法

部署后可用 OpenSSL 查看证书详情,确认覆盖范围:

openssl x509 -in cert.pem -text -noout | grep -A1 "Subject Alternative Name"

若显示 DNS:*.example.com 则为通配符;若列出多个独立域名则为多域名证书。也可使用 curl 验证握手:

curl -vI https://sub.example.com 2>&1 | grep "subject:"

浏览器地址栏锁图标点击后也可查看证书信息。

常见坑

1. 三级子域支持:通配符证书仅支持同级子域,*.example.com 不能保护 test.blog.example.com,需单独申请 *.blog.example.com。

2. 私钥安全:通配符证书私钥泄露会导致所有子域受影响,需更严格保管。

3. 数量限制:多域名证书通常有域名数量上限(如 2-250 个),超出需额外付费或升级。

4. 多服务器同步:修改通配符证书后,若未同步到所有负载均衡节点,会导致部分用户访问报错。

参考来源

1. CA/Browser Forum Baseline Requirements: https://cabforum.org/

2. OpenSSL Certificate Commands: https://www.openssl.org/docs/

3. Let's Encrypt Wildcard Certificates: https://letsencrypt.org/docs/