WebChat HTTPS Proxy

🔐 零Root权限的本地HTTPS语音网关代理

为OpenClaw WebChat Control UI提供HTTPS/WSS反向代理,支持TLS证书自动管理、WebSocket透传及语音转录端点代理,无需root权限即可作为用户级systemd服务运行。

收藏
2.6k
安装
984
版本
0.1.1
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

WebChat HTTPS Proxy 是专为 OpenClaw 语音交互系统设计的反向代理基础设施组件,主要解决浏览器安全策略(CORS、Mixed Content)与本地语音网关的桥接问题。部署后默认在 127.0.0.1:8443 提供 HTTPS 服务,自动完成以下三件事:

1. 静态资源服务:托管 WebChat Control UI 单页应用(SPA),支持前端路由回退;
2. WebSocket 透传:将 WSS 连接降级代理到本地网关的明文 WebSocket (ws://127.0.0.1:18789);

3. 转录端点代理:把 /transcribe 请求转发至 faster-whisper 本地服务,支持浏览器同源认证或 Bearer Token 回退。

部署通过单一脚本完成,支持通过环境变量 VOICE_HOSTVOICE_HTTPS_PORT 自定义绑定地址与端口。首次运行自动生成自签名 TLS 证书(RSA 2048),私钥权限严格设为 600。

显著优点

  • 零 root 依赖:完全运行在用户命名空间,通过 systemd user instance 持久化,适合受限环境(企业笔记本、容器内嵌)
  • 安全默认配置:TLS 1.2+ 强制、SSRF 防护(仅允许 localhost 上游)、路径遍历防护(realpath 校验)、50MB 上传限制、120s 上游超时
  • 幂等部署:重复执行 deploy.sh 不会重复生成证书或破坏现有配置,适合 CI/CD 或配置管理工具
  • 细粒度 CORS:仅允许单一显式配置的 origin,拒绝通配符与畸形输入,降低 CSRF 面
  • 无遥测:零出站网络调用,无埋点、无版本检查,隐私可控

潜在局限

  • 自签名证书 UX:首次访问必现浏览器证书警告,需用户手动信任或企业 CA 签名替换
  • 单 origin 限制:不支持多域名同时访问,跨设备场景需统一配置 VOICE_HOST 为 LAN IP
  • 依赖 systemd:非 systemd 发行版(如某些容器镜像、WSL1)需手动适配启动逻辑
  • Python 版本锁定:要求 aiohttp ≥3.9.0,旧版系统包可能需 venv 隔离
  • 无内置高可用:单进程模型,故障需依赖 systemd restart,无负载均衡或健康检查端点

适合人群

  • 已部署 OpenClaw 语音网关、希望为 WebChat UI 添加 HTTPS 封装的现有用户
  • 需要在受控 LAN 环境(如家庭服务器、会议室主机)共享语音控制界面的进阶用户
  • 对系统权限敏感、拒绝 sudo 的开发者或企业合规环境

常规风险

  • LAN 暴露风险:一旦设置 VOICE_HOST 为非 127.0.0.1 地址,整个服务暴露于局域网,需确保网络边界可信
  • Token 泄露:Bearer Token 通过 URL query (?token=...) 首次传递,可能残留于浏览器历史或日志
  • 证书管理:自签名证书无过期自动续期机制,长期运行需手动轮换
  • 依赖链攻击:aiohttp/openssl 若存在 CVE,需用户手动更新宿主环境,无自动补丁机制

WebChat HTTPS Proxy 内容

assets文件夹
references文件夹
scripts文件夹
手动下载zip · 11.2 kB
https-server.pytext/plain
请选择文件