TLS 证书¶
Meridian 支持原生 HTTPS,也可以放在已有 HTTPS 网关后面。此页介绍“全局设置 → TLS 设置”中的原生证书管理;外部网关见 反向代理。

先确定域名与端口¶
| 配置 | 示例 | 含义 |
|---|---|---|
| 面板访问域名 | panel.example.com |
完整域名,不含协议、端口和路径。 |
| 监听端口 | 9090 |
Meridian 进程实际监听的端口。 |
| 节点泛域名 | *.example.com |
域名前缀站点使用的通配域名;Cloudflare 自动申请流程需要它。 |
保存后核对页面的当前监听端口、设置端口和重启提示。公开网关端口可以与内部端口不同,不能把浏览器显示的 443 或 8443 自动当成内部监听端口。
端口或 TLS 状态变化需要按提示重启,并同步调整反向代理。单纯更新有效证书时可热重载。
证书来源¶
| 来源 | 适用情况 | 更新方式 |
|---|---|---|
| Cloudflare 自动申请 | DNS 在 Cloudflare,需要泛域名证书 | Meridian 定期检查并在到期前续签。 |
| 服务器文件路径 | 已有 certbot、acme.sh 或其他证书管理工具 | 检查文件变化并热重载。 |
| 上传证书 | 已有 PEM 文件,或不便提供服务器路径 | 到期前重新上传。 |
导入时验证 PEM 格式、私钥配对、证书时间和域名覆盖。使用完整证书链与未加密的 PEM 私钥;只有证书而没有匹配私钥不能使用。
Cloudflare 自动申请¶
- 先保存面板域名、节点泛域名和监听端口。
- 选择 Cloudflare 自动申请,填写 ACME 邮箱。
- 在 Cloudflare 创建 API Token,只授予目标 Zone 的 Zone Read 与 DNS Edit 权限。
- 填写 Token,申请证书。
- 查看签发结果,并按提示重启启用 HTTPS。
此流程使用 DNS-01,不依赖公网 80 端口。它签发节点的通配证书,面板应是该基础域下一层子域,例如 panel.example.com 对应 *.example.com。
自动续签需要有效的邮箱、Token、持久密钥和出站网络。Meridian 在证书到期前 30 天进入续签窗口;请关注页面的证书有效期、自动续签状态与服务日志,而不是仅确认首次申请成功。
测试环境证书不受普通客户端信任,不用于正式访问。
服务器路径¶
例如:
必须填写服务器上的绝对路径,服务账户需要读取文件及其父目录的权限。Docker 中路径指容器内部路径,需要事先挂载。
Meridian 每分钟检查外部文件变化,验证成功后热重载。更新为无效文件不会立即替换当前有效证书;仍须确保原证书到期前完成有效续期。
不应通过把私钥改成全局可读来解决权限问题。使用专用目录或适当的只读挂载,让服务账户具备必要读取权限。
上传证书¶
选择完整 PEM 证书链与未加密私钥,再提交导入。上传后由 Meridian 管理副本;证书提供方续期时不会自动替你上传新文件。
上传适合已有证书或迁移场景。来源为上传时,界面会提示到期前重新上传。
泛域名覆盖¶
*.example.com 覆盖 panel.example.com、cinema.example.com 等一层子域,不覆盖根域 example.com,也不覆盖 deep.cinema.example.com。
配置了节点泛域名时,导入证书必须同时满足面板与节点域名覆盖要求;否则导入失败并保留原配置。
常见问题¶
| 现象 | 检查 |
|---|---|
| Cloudflare 申请失败 | Token 的目标 Zone 与权限、DNS-01 传播、出站网络和签发限制。 |
| 文件路径不可读取 | 是否填写本机 / 容器中的真实路径,服务账户是否有读取与目录遍历权限。 |
| 私钥不匹配 | 证书与私钥是否来自同一套签发结果。 |
| 域名不匹配 | 是否包含完整面板域名与配置的通配域名。 |
| 更新后仍访问旧端口 | 当前端口与设置端口是否不同,服务和网关是否已重启 / 调整。 |
| 独立站点端口仍是 HTTP | 核对原生 TLS 状态,不只看网关外层 HTTPS。 |
证书到期可能触发 HTTPS 停用与重启;是否还能以 HTTP 启动取决于绑定地址和明文访问策略。不要把这种恢复行为当作续期方案。
安装器也支持泛域名配置及失败回滚,见 Linux 安装。