首页 / 系统与安全

主机配置:域名、落地页与 HTTPS 证书

域名白名单与跳转规则、落地页 HTML 与模板变量、Let's Encrypt 自动证书与上传证书、Nginx/Cloudflare 场景。

「主机配置」管理**前台站点(6166 / 80 / 443)**的访问入口,不影响后台管理端口。包含三个页面:

页面 路由 作用
域名管理 /hostConfig/domain 域名白名单、301/302 跳转、强制 HTTPS、落地页域名
证书管理 /hostConfig/certificate 前台 HTTPS 证书(自动申请 / 上传)
落地页配置 /hostConfig/landingPage 一份可通过指定域名直接访问的完整 HTML 页面

整体访问架构(端口、Nginx、宝塔)见域名、反向代理与 HTTPS。

域名管理

域名管理
域名管理

页面采用先本地编辑、再统一保存:新增、编辑、删除规则或切换启用,只是修改当前页面草稿,点击右上角「保存配置」才会写入服务器;「重新载入」会丢弃未保存的修改。

仅允许已配置域名访问(白名单)

开启后,前台访问只有规则列表里的域名可以访问;直接用服务器 IP 或未配置域名访问会被拒绝。

开启前先添加当前域名

开启前必须先把当前正在使用的前台域名添加到规则列表,否则保存后你自己也会被挡在门外。规则即使处于「关闭」状态也算「已配置域名」,仍可通过白名单检查。Let's Encrypt 的 HTTP-01 验证路径会自动放行,不会被白名单拦截。

规则字段

配置项 说明
来源域名 用户访问时输入的域名,如 example.com;不要填 http://、https://、路径或端口
域名类型 主域名(不跳转)/ 301 永久跳转 / 302 临时跳转 / 落地页
目标协议 / 目标域名 仅跳转规则需要
跳转策略 按当前规则跳转 / 服务器计算最终地址
启用规则 开启才真正执行跳转或强制 HTTPS;关闭仍可用于白名单
强制 HTTPS 访问 用户用 HTTP 访问该域名时跳转到 HTTPS
备注 仅后台识别
域名类型 适合场景
主域名(不跳转) 这就是正式域名;开启强制 HTTPS 时只做 HTTP→HTTPS
301 永久跳转 域名长期迁移、统一 www 与非 www(搜索引擎会当作永久迁移)
302 临时跳转 临时切换、测试、短期活动域名
落地页 线路导航、下载引导、活动入口;启用后访问该域名展示「落地页配置」的 HTML

跳转策略:a → b、b → c 时,a 用「按当前规则跳转」会先到 b,用「服务器计算最终地址」会直接到 c。不要配置互相跳转(a → b 同时 b → a)。

生效规则与注意事项

  • 域名白名单检查所有前台请求的 Host;跳转只处理前台页面入口请求,不会处理接口和静态资源;
  • 跳转会保留原始路径和查询参数,例如 http://old.example.com/video/detail?id=100 → https://new.example.com/video/detail?id=100;
  • 如果前面有 Nginx/CDN/反向代理,必须正确传递 X-Forwarded-Proto,否则系统可能无法准确判断是否 HTTPS(导致重复跳转);
  • 确定主域名后,同步在SEO 配置填写 Canonical 域名。

常用示例

目标 规则
设置正式域名 添加 example.com,类型「主域名」,证书可用后开启强制 HTTPS
www 跳主域名 www.example.com,类型 301,目标 https://example.com
旧域名迁新域名 old.example.com,类型 301,目标 https://new.example.com,启用

证书管理

证书管理
证书管理

证书管理只影响前台站点 HTTPS,不等于后台管理端口自动变成 HTTPS。若前面有 Cloudflare 或 Nginx,先确认最终由谁负责 HTTPS 证书。

来源与列表

来源 适合 说明
自动申请 服务器可被公网访问,域名已解析到本机(或代理能转发验证请求) 使用 Let's Encrypt,可自动续期
上传证书 已在其他平台购买/生成证书,或 Cloudflare Origin CA 等 手动提供证书,不支持自动续期

状态:有效(未过期)、即将到期(30 天内过期)、已过期。「查看详情」可看序列号、指纹、备用名称、证书内容;「删除」会同时删除记录和证书文件,对应域名的 HTTPS 可能立即失效。

自动申请

点击「添加域名」选「自动申请」:

配置项 说明
绑定域名 如 example.com,不要协议/路径/端口
验证方式 固定为 HTTP 文件验证,Let's Encrypt 会访问 http://你的域名/.well-known/acme-challenge/...
联系邮箱 建议真实可用
自动续期 建议开启;系统在进入 30 天到期窗口后尝试续期,续期失败不会删除旧证书

申请前确认:域名已解析;外网能访问域名的 80 端口;防火墙/安全组/Cloudflare/Nginx 没有拦截 /.well-known/acme-challenge/。

上传证书

选「上传证书」:绑定域名、颁发机构(选填)、PEM 格式证书文件(以 -----BEGIN CERTIFICATE----- 开头)、私钥文件、证书链(选填)。系统会检查证书与私钥是否匹配、证书是否覆盖绑定域名、PEM 是否可解析。到期前需要重新上传。

三种常见部署

方案 做法
直接使用 80 和 443 安装时选择启用 80/443:域名解析 → 放行 80/443 → 在「证书管理」申请或上传证书 → 在「域名管理」添加正式域名 → 证书可用后再开强制 HTTPS(没证书就强制 HTTPS 会出现证书错误或无法访问)
Nginx 反向代理 安装时不要启用 80/443,避免端口冲突;Nginx 监听 80/443,反代到 127.0.0.1:6166。Nginx 自己管证书时,发财CMS 的证书管理不是必须;若还想让发财CMS 自动申请证书,必须把 /.well-known/acme-challenge/ 转发到 6166
Cloudflare CDN 首次申请证书不确定代理是否正确时,先用 DNS only(灰云) 让 Let's Encrypt 直连服务器,成功后再切 Proxied(橙云),SSL/TLS 模式优先 Full (strict)

Nginx 反向代理核心配置(80 端口放行验证路径并跳转 HTTPS,443 反代到前台 6166,务必传递 X-Forwarded-Proto):

nginx
server {
    listen 80;
    server_name example.com www.example.com;
    location /.well-known/acme-challenge/ {
        proxy_pass http://127.0.0.1:6166;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location / { return 301 https://$host$request_uri; }
}
server {
    listen 443 ssl http2;
    server_name example.com www.example.com;
    ssl_certificate     /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;
    location / {
        proxy_pass http://127.0.0.1:6166;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

落地页配置

落地页配置
落地页配置

落地页是一份完整 HTML 页面,所有「域名类型 = 落地页」的域名共享同一份内容。左侧 HTML 编辑区,右侧实时预览,下方是模板变量。

编辑与预览

  1. 在编辑区填写完整页面(含 <!doctype html>、<html>、<head>、<body>);
  2. 需要经常改的文案/链接,添加模板变量,在 HTML 里用 {{变量名}} 引用;
  3. 右侧自动刷新预览,检查布局、文案、样式;
  4. 点击「保存配置」,校验通过后 HTML 和变量一起保存并应用到全部落地页域名。

预览不执行脚本

后台实时预览使用不授予脚本权限的 iframe,页面中的 JavaScript 不会执行。测速、复制、跳转、下载等依赖脚本的功能,要在真实域名上验证。

绑定落地页域名

  1. 到「域名管理」添加/编辑规则,填写已解析到本服务的来源域名;
  2. 域名类型设为「落地页」(不需要目标协议/目标域名/跳转策略);
  3. 开启「启用规则」,否则该域名仍按原站点路由处理;
  4. 证书已配好后可开启「强制 HTTPS 访问」;
  5. 点击域名管理页面右上角「保存配置」。

模板变量与限制

示例:变量 site_name(文本)= 示例站点、support_url(链接)= https://support.example.com,在 HTML 中写 {{site_name}} 即可。规则:

  • 变量值会做 HTML 转义,但不等同于 JS/CSS 上下文转义:只放在普通文本、受控属性、数据节点里,不要直接放进 script、style、事件属性;
  • 每个占位符只做一次、非递归替换;HTML 引用的变量必须存在,否则不能保存;已配置但未使用的变量只警告;变量名不能重复;类型只能是「文本」或「链接」。
项目 限制(按 UTF-8 字节计算)
HTML 内容 最大 1 MiB
变量名 匹配 ^[a-z][a-z0-9_]{0,63}$(小写字母开头,小写字母/数字/下划线,最多 64 字符)
变量数量 最多 100 项
文本变量值 / 链接变量值 每项最大 4096 / 2048 字节
全部变量配置 最大 512 KiB
渲染结果 最大 16 MiB

链接变量只允许:带非空主机的 HTTP/HTTPS 绝对地址,或以 /、./、../、?、# 开头的相对地址;不能为空、不能以 // 开头、不能含空白等。

常见问题

现象 处理
后台预览正常但测速/复制/跳转没反应 预览不执行脚本,用真实域名测试
真实域名仍打开原站点 检查域名规则类型是否「落地页」且「启用规则」已保存,域名是否已解析
无法保存,提示缺少变量 HTML 里引用了不存在的变量,补充变量
链接变量提示格式错误 按上面的链接规则修改
开启强制 HTTPS 后无法访问 证书未就绪或代理没传 X-Forwarded-Proto;先确认证书可用
发财CMS 使用教程