跳转至

TLS 证书

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

TLS 设置

先确定域名与端口

配置 示例 含义
面板访问域名 panel.example.com 完整域名,不含协议、端口和路径。
监听端口 9090 Meridian 进程实际监听的端口。
节点泛域名 *.example.com 域名前缀站点使用的通配域名;Cloudflare 自动申请流程需要它。

保存后核对页面的当前监听端口、设置端口和重启提示。公开网关端口可以与内部端口不同,不能把浏览器显示的 443 或 8443 自动当成内部监听端口。

端口或 TLS 状态变化需要按提示重启,并同步调整反向代理。单纯更新有效证书时可热重载。

证书来源

来源 适用情况 更新方式
Cloudflare 自动申请 DNS 在 Cloudflare,需要泛域名证书 Meridian 定期检查并在到期前续签。
服务器文件路径 已有 certbot、acme.sh 或其他证书管理工具 检查文件变化并热重载。
上传证书 已有 PEM 文件,或不便提供服务器路径 到期前重新上传。

导入时验证 PEM 格式、私钥配对、证书时间和域名覆盖。使用完整证书链与未加密的 PEM 私钥;只有证书而没有匹配私钥不能使用。

Cloudflare 自动申请

  1. 先保存面板域名、节点泛域名和监听端口。
  2. 选择 Cloudflare 自动申请,填写 ACME 邮箱。
  3. 在 Cloudflare 创建 API Token,只授予目标 Zone 的 Zone Read 与 DNS Edit 权限。
  4. 填写 Token,申请证书。
  5. 查看签发结果,并按提示重启启用 HTTPS。

此流程使用 DNS-01,不依赖公网 80 端口。它签发节点的通配证书,面板应是该基础域下一层子域,例如 panel.example.com 对应 *.example.com。

自动续签需要有效的邮箱、Token、持久密钥和出站网络。Meridian 在证书到期前 30 天进入续签窗口;请关注页面的证书有效期、自动续签状态与服务日志,而不是仅确认首次申请成功。

测试环境证书不受普通客户端信任,不用于正式访问。

服务器路径

例如:

证书链:/etc/meridian-certs/fullchain.pem
私钥:/etc/meridian-certs/privkey.pem

必须填写服务器上的绝对路径,服务账户需要读取文件及其父目录的权限。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 安装。