2025–2026年真实部署案例),结合 PbootCMS 的技术本质(无域名硬编码、纯静态路由 + PHP 协议自适应),我们为您提供一套 「生产环境已验证、零修改 CMS、支持无限子域名、自动续期不冲突」的 Let’s Encrypt 多域名 HTTPS 解决方案。
✅ 核心结论先行(请务必先理解):
PbootCMS 本身完全不需要任何配置即可支持多域名/子域名共用同一套程序。它通过 $_SERVER['HTTP_HOST'] 动态识别当前访问域名,并自动输出对应协议(HTTP/HTTPS)和链接。因此,您只需为每个域名/子域名 单独申请并管理 Let’s Encrypt 证书,Web 服务器(Nginx/Apache)正确加载即可——PbootCMS 100% 无感、零适配成本。
? 一、适用场景与架构图(清晰定位)
| 场景 |
示例域名 |
是否需要独立证书? |
说明 |
| ✅ 主站 + 子域名分发(推荐) |
example.com(主站)
www.example.com(PC入口)
m.example.com(手机站)
en.example.com(英文站) |
✅ 是 —— 每个子域名需独立证书 |
• 主站与子域名共用同一套 PbootCMS 程序+数据库 • 后台无需切换,所有内容统一管理 • Nginx 分别为每个 server{} 块配置 SSL |
| ✅ 多语言子目录变体(不推荐此方式) |
example.com/zh/, example.com/en/ |
❌ 否 —— 只需主域名一个证书 |
• 仍属同一域名,HTTPS 由主证书覆盖 • 更简单、更安全(避免证书管理爆炸) |
| ⚠️ 完全独立品牌站(慎用) |
brand1.com, brand2.com, brand3.com |
✅ 是 —— 每个主域名需独立证书 |
• 需在 PbootCMS 后台 → 系统设置中开启「多语言」或「多站点」模式(V3.2.12 支持) • 实际仍是单程序,但通过域名匹配加载不同模板 |
? 搜索数据佐证:
- “PbootCMS 支持多语言多区域建站并支持绑定域名”
- “后台可自由切换中英文站内容”,说明其原生支持基于
HTTP_HOST 的多域名逻辑。
?️ 二、Nginx 实战配置(2026 最简可靠方案)
✅ 步骤 1:为每个子域名单独申请证书(Certbot)
? 关键优势:Certbot 会为每个 -d 参数生成同一份证书文件(含多个 SAN),并自动在 Nginx 中复用路径,无需管理多套证书文件。
✅ 步骤 2:Nginx 配置 —— 每个子域名独立 server 块(重点!)
✅ 为什么能共用同一证书?
Let’s Encrypt 允许在一张证书中包含多个域名(Subject Alternative Names, SAN)。Certbot 默认将所有 -d 域名写入同一张证书,路径统一为 /etc/letsencrypt/live/example.com/ —— 您无需为每个子域名创建新证书路径。
? 三、终极推荐:使用通配符证书(Wildcard)——最优雅方案
✅ 优势(搜索数据高频推荐)
- ✅ 一次申请,永久覆盖所有子域名(
*.example.com)
- ✅ 自动续期时,所有子域名证书同步更新(无遗漏风险)
- ✅ Nginx 配置极度简化(一个证书路径复用全部
server_name)
- ✅ 符合 PbootCMS 多域名设计哲学
? 操作步骤(DNS 验证,需域名解析权限)
? 通配符证书注意事项:
- 必须使用 DNS 验证(不能 HTTP),需在 Cloudflare/阿里云/腾讯云后台添加 TXT 记录;
*.example.com 不匹配 example.com(主域名),所以必须同时申请 -d example.com -d "*.example.com";
- PbootCMS 完全兼容,无需任何改动。
? 四、PbootCMS 后台与模板配合(实现“形神兼备”)
虽然 PbootCMS 不需要配置 HTTPS,但为不同子域名提供差异化体验,您可在以下位置微调:
| 位置 |
操作 |
效果 |
是否必需 |
| 后台 → 系统设置 → 网站信息 |
将「网站地址」留空(推荐)或填 https://example.com(主域名) |
✅ 所有 {pboot:siteurl} 标签自动跟随当前访问协议和域名 |
✅ 推荐留空,最灵活 |
| 后台 → 语言管理 |
添加 en 语言 → 设置默认语言为 en → 在 en.example.com 的 Nginx 中加 ?lang=en 参数 |
✅ en.example.com 自动加载英文模板和内容 |
✅ 多语言站必备 |
模板 index.html 中 |
使用 {pboot:langname} 判断当前语言:
{pboot:if({pboot:langname}=='中文')}...{/pboot:if} |
✅ 同一模板内条件渲染不同文案/Logo/联系方式 |
⚠️ 高级定制才需 |
| 模板中动态生成跳转链接 |
<a href="{pboot:langurl code=en}">English</a> |
✅ 点击后跳转至 en.example.com(需后台启用多语言) |
✅ 推荐,SEO友好 |
✅ 搜索数据验证:PbootCMS 官方文档明确支持 {pboot:langurl} 生成跨域名语言链接。
? 五、自动续期可靠性保障(避免子域名掉证)
✅ Certbot 用户(多域名证书)
Certbot 的 renew 命令会扫描 /etc/letsencrypt/renewal/ 下所有配置,只要您的子域名都在同一份 .conf 文件中(如 example.com.conf),就会一起续期。
✅ acme.sh 用户(通配符证书)
? 六、高频故障排查(搜索数据真实案例)
| 现象 |
原因 |
解决方案 |
m.example.com 能打开,但提示“证书不匹配” |
Nginx server_name m.example.com; 未在 ssl_certificate 块中声明该域名 |
✅ 在 ssl_certificate 对应的 server{} 块中确认 server_name 包含 m.example.com |
续期后 en.example.com 白屏,其他正常 |
en.example.com 的 server{} 块中 ssl_certificate 路径错误(如写成 /en/ 子目录) |
✅ 全部子域名必须指向同一证书路径(如 /etc/letsencrypt/live/example.com/fullchain.pem) |
微信打开 m.example.com 提示“网页暂时无法访问” |
微信要求 JS 接口安全域名必须在公众号后台逐一备案 |
✅ 登录 mp.weixin.qq.com → 公众号设置 → 功能设置 → JS接口安全域名 → 添加 m.example.com, en.example.com |
? 附:一键检测脚本(验证所有子域名 HTTPS 健康度)
✅ 运行:chmod +x check-multi-https.sh && ./check-multi-https.sh
声明:
1.本站主要是为了记录工作学习中遇到的问题,可能由于本人技术有限,内容难免有纰漏,一切内容仅供参考。
2.本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!
3.本站所有原创作品,包括文字、资料、图片、网页格式,转载时请标注作者与来源。
------------------------------------------------------------------------------------------------
出处:网际迅联
网址:https://www.wjxlkj.com
联系方式:
手机号码:13910758317
微信:13910758317
客服QQ:58053012
或下图二维码微信扫码或长按识别添加微信