3
0
0

单域名、多域名、泛域名证书

2026-10-22
2026-10-22
文章摘要
|

HTTPS 与 SSL 证书详解:单域名、多域名、泛域名证书

示例域名:lookstar.asia。本文延续前两篇,以 Nginx 部署网站为例。

一、HTTPS 与 SSL 证书

HTTP 传输的数据默认不加密;HTTPS 在 HTTP 和 TCP 之间使用 TLS 建立加密连接,保护数据传输,并通过证书验证服务器身份。

日常说的 SSL 证书,准确来说通常是 TLS 证书;SSL 是早期协议名称,目前网站主要使用 TLS。

HTTP   → http://blog.lookstar.asia  (常用 80 端口)
HTTPS  → https://blog.lookstar.asia (常用 443 端口)

DNS 负责将域名解析到 IP;Nginx 接收请求;证书负责让浏览器验证 HTTPS 连接的服务器身份。三者作用不同。

二、三种常见证书及覆盖范围

证书类型

示例

可覆盖域名

单域名证书

lookstar.asia

lookstar.asia

多域名证书(SAN)

lookstar.asia、blog.lookstar.asia

证书中明确列出的域名

泛域名证书

*.lookstar.asia

blog.lookstar.asia、api.lookstar.asia 等一层子域名

泛域名证书 *.lookstar.asia 不自动覆盖:

lookstar.asia           # 根域名
dev.blog.lookstar.asia  # 更深一层的子域名

如果需要同时覆盖根域名与常见子域名,可以申请包含以下名称的证书:

lookstar.asia
*.lookstar.asia

注意: 不同域名部署在不同服务器上时,可以各自申请证书,不必把同一份私钥复制到所有服务器。

三、使用 Let's Encrypt 和 Certbot 申请泛域名证书

Let's Encrypt 提供免费 TLS 证书;Certbot 用于申请和续期证书,需要在服务器上单独安装,并非 Java 8 自带组件。

以 lookstar.asia 为例,申请一张同时覆盖主域名和一级子域名的证书:

# 需要提前安装 Certbot
sudo certbot certonly --manual --preferred-challenges dns \
  --cert-name lookstar.asia \
  -d lookstar.asia -d '*.lookstar.asia'
  • certonly:只申请证书,不自动修改 Nginx 配置。

  • --manual --preferred-challenges dns:采用手动 DNS-01 验证。

  • -d lookstar.asia:覆盖主域名。

  • -d '*.lookstar.asia':覆盖 blog.lookstar.asia、api.lookstar.asia 等一级子域名。

  • --cert-name lookstar.asia:指定 Certbot 管理的证书名称,方便引用证书路径。

DNS-01 验证原理: -d 指定需要写入证书的域名,DNS 验证用于证明你有权管理这些域名,并不是用来选择证书覆盖范围。 Let’s Encrypt 会检查 _acme-challenge.lookstar.asia 的 TXT 验证值;验证通过后才签发证书。 申请泛域名证书必须使用 DNS-01,但可通过 DNSPod API 自动添加 TXT 记录,不一定要手动操作,也不需要提前创建每个子域名。

执行后,按照 Certbot 提示,在 DNSPod 中添加 TXT 验证记录(通常是 _acme-challenge)。如果要求多个 TXT 值,应全部保留,确认 DNS 记录生效后再继续验证。

签发后可查看证书:

sudo certbot certificates

一般情况下,证书文件位于:

/etc/letsencrypt/live/lookstar.asia/fullchain.pem  # 证书链
/etc/letsencrypt/live/lookstar.asia/privkey.pem     # 私钥

续期注意: 上述手动 DNS 验证方式不能直接无人值守自动续期。生产环境建议通过 DNSPod API 配合支持 DNS-01 自动验证的 ACME 客户端或 Certbot 插件实现自动续期,并在续期后重新加载 Nginx。certbot renew --dry-run 不能代替手动验证的自动化配置。

四、常见问题与注意事项

现象

常见原因

浏览器提示证书域名不匹配

证书未包含正在访问的域名

HTTPS 连接失败

443 端口未放行、Nginx 未监听或服务异常

证书过期

续期任务未正常运行,或续期后的证书没有被服务重新加载

使用 *.lookstar.asia 访问根域名报错

泛域名证书默认不覆盖根域名

HTTP 正常但 HTTPS 不正常

80 与 443 是不同的监听入口,HTTPS 还依赖有效证书与 TLS 配置

实践建议: 多个子域名集中部署时,可采用包含 lookstar.asia 与 *.lookstar.asia 的证书;多台独立服务器应谨慎共享私钥。无论采用哪种方式,都应检查续期是否成功。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

评论