在一个内网里,对外只有一个公网 IP,内网里的服务全部共用一个 SSL 通配符证书,公网 IP 是防火墙,只在防火墙上安装这个通配符证书,内网服务器上不用安装

架构说明

公网 IP 在防火墙,防火墙做 SSL 卸载(终结 HTTPS),使用 1 张通配符证书 *.shturl.内网所有 Web 服务不用部署公网 SSL 证书;外网 HTTPS 解密在防火墙,防火墙转发 HTTP(或内网 HTTPS)到内网服务器。 DNS:所有子域名 *.shturl. A 记录全部解析到防火墙公网 IP

前置准备

  1. 通配符证书全套文件(推荐 PEM 格式)

    部分防火墙支持 PFX/P12 打包文件(证书 + 私钥 + 证书链一体)

    • 证书公钥:*.shturl..crt

    • 证书私钥:*.shturl..key(重点,妥善保管)

    • 中间证书链:ca-chain.crt

  2. 收集内网业务清单

    表格

    域名内网后端地址
    shturl.cc/9192.168.1.10:80
    shturl.cc/S192.168.1.11:80
    shturl.cc/O192.168.1.12:80
  3. 防火墙支持:SSL 卸载、反向代理 / 虚拟服务、SNI、支持 X-Forwarded-For 头


一、防火墙导入通配符证书,新建 SSL 模板

  1. 登录防火墙管理后台,进入【证书管理】页面

  2. 上传证书:

    • 导入证书文件、私钥、中间证书链

    • 填写证书名称:wildcard-*.shturl.(方便识别)

  3. 保存,创建SSL Profile(SSL 模板),绑定刚导入的通配证书

✅ 所有子域名代理服务统一引用这一个 SSL 模板,不需要重复上传证书

二、配置反向代理 / 虚拟服务(公网 443 端口)

绑定防火墙公网 IP,端口 443,关联上面创建好的 SSL 模板,开启 SNI

  1. 创建虚拟服务 / 反向代理服务

    • 监听 IP:防火墙公网 IP

    • 监听端口:443

    • SSL 配置:选择刚才的 wildcard-*.shturl. SSL 模板

    • 开启 SNI(必开,多域名区分后端)

  2. 添加域名匹配规则(SNI 路由)

    • 匹配域名 shturl.cc/9 → 转发到内网 192.168.1.10:80

    • 匹配域名 shturl.cc/S → 转发到内网 192.168.1.11:80

    • 匹配域名 shturl.cc/O → 转发到内网 192.168.1.12:80

  3. 开启转发请求头(强烈建议)

    • X-Forwarded-For:传递真实客户端 IP

    • X-Forwarded-Proto: https:告诉后端前端是 HTTPS 访问,防止后端强制 https 重定向死循环

    • X-Forwarded-Host:传递原始访问域名

三、防火墙安全策略放行

  1. 放行外网 → 防火墙公网 IP 443 端口

  2. 放行防火墙代理节点 → 内网服务器 80 端口(如果是内网 HTTPS 模式则放行 443)

最小权限原则,不要全开内网访问

四、内网服务器配置(重点:不用装公网通配证书)

内网服务只监听 80 HTTP

  1. 网站程序配置:识别 X-Forwarded-Proto 头,不要强制 301 跳转 https

  2. 防火墙到内网是 HTTP 明文,内网可信环境直接使用;高安全场景:后端改用内网 HTTPS,内网服务器部署自签证书(不是公网通配证)

  3. 内网服务器网关 / 防火墙放行来自防火墙代理地址段的访问

五、DNS 配置

所有子域名:shturl.cc/9、shturl.cc/S、shturl.cc/O,A 记录解析到防火墙公网 IP。

六、业务验证

  1. 浏览器无痕窗口访问各个子域名,点击小锁查看证书:证书是 *.shturl.,有效期正常,无证书报错

  2. 测试页面功能、登录、上传下载等业务功能

  3. 验证后端日志:能拿到真实客户端 IP(X-Forwarded-For 生效)

  4. openssl 命令校验(可选)

openssl s_client -connect shturl.cc/9:443

查看返回证书主体为 *.shturl.


证书到期替换步骤(后续维护,仅防火墙操作,内网不动)

推荐方案:新建 SSL 模板测试,切换,方便回滚

  1. 获取新签发的通配证书 + 配套新私钥 + 中间链(新证书必须搭配新私钥,新旧不能混用)

  2. 防火墙证书管理上传新证书,新建 SSL 模板 wildcard-new-*.shturl.

  3. 编辑反向代理虚拟服务,把 SSL 模板从旧模板改为新模板,提交保存配置

  4. 无痕浏览器测试所有子域名,确认证书有效期更新

  5. 业务稳定运行一段时间后,再删除旧证书 / 旧模板

紧急回滚:切回旧 SSL 模板即可,无需改动内网


常见踩坑清单

  1. ❌ 不开 SNI:多域名访问会出现证书不匹配告警

  2. ❌ 缺少中间证书链:浏览器提示证书不信任

  3. ❌ 后端强制 HTTPS 跳转:出现重定向死循环,开启 X-Forwarded-Proto 解决

  4. ❌ 新证书用旧私钥:TLS 握手失败,网站打不开

  5. ❌ 防火墙性能不足:大量并发 HTTPS,CPU 占高,需要评估设备性能

  6. ❌ 通配证书范围限制:*.shturl. 不能匹配 shturl. 根域名,如果需要根域名,要选 SAN 证书同时包含根域名 +*.shturl.