为 OpenClaw 配置 HTTPS 是解决浏览器"安全上下文"限制、实现安全远程访问的最佳实践。
以下是基于 Nginx 反向代理的完整配置步骤:
第一步:生成自签名 SSL 证书
如果你没有正式的域名和证书,可以先在服务器上生成自签名证书进行测试。
创建证书存放目录:
bash
mkdir -p ~/.openclaw/ssl
cd ~/.openclaw/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout key.pem -out cert.pem \
-subj "/CN=raspberrypi.local" \
-addext 'subjectAltName=IP:192.168.1.200,DNS:localhost'
生成证书(注意将 192.168.1.200 替换为你服务器的实际 IP):
第二步:安装并配置 Nginx 反向代理
安装 Nginx:
bash
sudo apt update && sudo apt install -y nginx
创建 OpenClaw 的 Nginx 配置文件:
bash
sudo vi /etc/nginx/sites-available/openclaw
写入以下 HTTPS 配置(注意替换证书路径和 IP)
server {
listen 443 ssl;
server_name 192.168.1.200; # 替换为你的实际IP或域名
ssl_certificate /home/maxtang/.openclaw/ssl/cert.pem;
ssl_certificate_key /home/maxtang/.openclaw/ssl/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
location / {
proxy_pass http://127.0.0.1:18789;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
启用该配置并重启 Nginx:
bash
sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
sudo systemctl restart nginx
第三步:修改 OpenClaw 配置文件
编辑 OpenClaw 的核心配置文件:
bash
vi ~/.openclaw/openclaw.json
在 gateway 配置块中,添加 tls 路径以及 controlUi 的允许来源(allowedOrigins 必须使用 https:// 协议):
{
"gateway": {
"port": 18789,
"bind": "lan",
"tls": {
"cert": "/home/maxtang/.openclaw/ssl/cert.pem",
"key": "/home/maxtang/.openclaw/ssl/key.pem"
},
"controlUi": {
"enabled": true,
"allowedOrigins": ["https://192.168.1.200"]
}
}
}
第四步:重启服务并验证
重启 OpenClaw 网关使配置生效:
bash
openclaw gateway restart
在局域网其他设备的浏览器中访问: