归根结底,多域名 SSL 证书配置的重点其实只有两件事:一是证书必须完整覆盖所有需要启用 HTTPS 的域名;二是服务器必须把这张证书准确绑定到对应的网站配置上。证书类型方面,跨主域名场景通常应选择 SAN 证书;如果使用的是通配符证书,它默认只覆盖单层子域,根域名则需要额外通过 SAN 一并加入。到了 Nginx 配置层面,每个域名都应分别设置独立的 server 块,但证书文件路径可以复用同一套。至于宝塔面板,正确流程是先批量绑定全部域名,再统一重新签发证书,而不是为每个域名单独重复部署一次。

简单来说,多域名 SSL 证书绑定是否正确,真正需要关注的核心也只有两点:第一,证书本身必须把所有要使用的域名全部涵盖进去;第二,Web 服务器要将这些域名逐个、准确地关联到同一张证书上。这并不是“上传一次 SSL 证书”就能结束的操作,更关键的是要保证证书中的域名列表、服务器配置以及 DNS 解析记录三者完全匹配、保持一致,否则就容易出现 HTTPS 访问异常或证书不生效的问题。
选对证书类型:SAN 或通配符
如果一张 SSL 证书要同时支持多个域名,就必须选择支持多域名绑定的证书类型:
- SAN(Subject Alternative Name)证书:这是最常见的多域名 SSL 证书类型。申请时需要明确填写所有要保护的域名,例如
example.com、www.example.com、shop.example.com、api.another-site.net—— 它支持跨主域名使用,但每一个域名都必须手动添加到证书列表中。 - 通配符证书(*.example.com):适合匹配单层子域名,比如可用于
www.example.com和api.example.com,但不能直接用于example.com(根域名)或dev.api.example.com(更深层级子域名)。如果业务中还需要保护根域名,就必须额外把它加入 SAN 列表中。
Nginx 配置:一个域名一个 server 块
不要尝试让多个域名共用同一个 server 块来直接套用证书。更规范、也更稳定的做法,是为每个域名单独编写一个 server { ... } 配置块,并统一指向同一组 SSL 证书文件:
- 每个
server_name都必须与证书中的某个域名完全一致(大小写通常不敏感,但是否带www属于不同域名,不能混用); ssl_certificate与ssl_certificate_key的路径必须填写正确,并确保所有相关配置块引用的是同一对证书文件;- 确认 Nginx 版本 ≥ 1.15.9,SNI 一般默认已启用,无需再额外开启相关开关。
宝塔面板实操:别点两次“部署SSL”
在宝塔面板中,默认每次部署 SSL 都可能覆盖前一次的证书配置。想让多个域名共用同一张 SSL 证书,正确方式是走“批量绑定域名 + 重新签发证书”的流程:
- 新建站点时,在「域名」输入框中一次性填写所有域名(主域名放在前面,可用换行或空格分隔),然后再勾选“申请 Let’s Encrypt SSL”;
- 如果是已有站点需要新增域名,应先进入「域名管理」添加新域名 → 再返回「SSL」页面 → 点击「申请证书」下拉菜单 → 选择「重新申请(保留原域名列表)」;
- 切记不要对同一个站点反复点击「部署SSL」,否则后一次部署会覆盖前一次的证书路径,进而导致部分域名的 HTTPS 无法正常访问。
验证与维护:别漏了续期和 DNS
SSL 证书成功生效,并不代表后续就可以完全不用管理:
- Let’s Encrypt 证书通常 90 天到期,务必确认自动续签任务运行正常(宝塔面板一般默认开启,可前往「计划任务」检查 acme.sh 日志);
- 新增域名后,必须先完成 DNS 解析配置(如 A 记录正确指向服务器 IP),否则无论是证书签发还是后续续签,都可能因为域名验证失败而中断;
- 可以使用
openssl s_client -connect example.com:443 -servername example.com命令,直接检查服务器当前实际下发的证书,以及其中包含了哪些域名。
