首页 > 教程攻略 > ai资讯 >OpenClaw Docker部署怎么配置HTTPS?

OpenClaw Docker部署怎么配置HTTPS?

来源:互联网 时间:2026-07-29 14:15:44

为OpenClaw Docker部署配置HTTPS,说白了就是给容器加一把SSL/TLS的锁,让Web界面和API请求全程走加密通道。这样一来,凭证、日志、敏感操作数据就不会在网络里裸奔了。下面直接上干货,从自签名证书到正式证书,一步步来。

OpenClaw Docker部署怎么配置HTTPS?

生成自签名证书(开发/测试环境)

先在宿主机项目根目录下创建一个ssl子目录,用来放证书文件:

mkdir -p ./ssl

然后执行OpenSSL命令,生成私钥和证书。注意,这一步必须在宿主机上执行,而且证书路径必须跟后续Docker卷挂载的路径严格一致,否则容器里找不到文件会报错。

openssl req -x509 -nodes -days 365 -newkey rsa:2048 
  -keyout ./ssl/openclaw.key 
  -out ./ssl/openclaw.crt 
  -subj "/C=CN/ST=Beijing/L=Beijing/O=OpenClaw/CN=localhost"

如果计划用通配符域名(比如CN=*.example.com),记得确保DNS解析指向当前服务器IP,否则浏览器会毫不留情地甩个“NET::ERR_CERT_COMMON_NAME_INVALID”错误。

修改OpenClaw配置文件启用HTTPS

找到config.yamlapp.conf(具体文件名看OpenClaw版本),定位到server模块:

  • http_port: 8080改成https_port: 443
  • 添加证书路径字段:ssl_key_path: /app/ssl/openclaw.keyssl_cert_path: /app/ssl/openclaw.crt

这里有个容易踩的坑:路径中的/app/ssl/是容器内部的路径,必须跟下一步-v挂载的目标路径保持一致。千万别写成./ssl/或者宿主机上的绝对路径,否则容器根本找不到证书。

启动容器并映射443端口

有两种方式,选一个就行。

方法一:直接使用docker run

docker run -d 
  --name openclaw-https 
  -p 80:80 
  -p 443:443 
  -v $(pwd)/ssl:/app/ssl:ro 
  -v $(pwd)/config.yaml:/app/config.yaml:ro 
  openclaw/web:v2.4.1

方法二:使用docker-compose.yml(多服务协同场景更推荐)

docker-compose.yml中定义服务时,ports必须包含"443:443"volumes段要加上证书挂载项:

volumes:
  - ./ssl:/app/ssl:ro
  - ./config.yaml:/app/config.yaml:ro

启动后,访问https://your-server-ip,浏览器地址栏应该会显示小锁图标。如果还是跳转到HTTP或者提示不安全,先检查宿主机防火墙是否放行了443端口:sudo ufw allow 443(Ubuntu)或 sudo firewall-cmd --add-port=443/tcp --permanent(CentOS)。

替换为Let’s Encrypt正式证书(生产环境)

测试环境搞定了,生产环境当然要用正规证书。Let’s Encrypt免费、自动续期,是最省心的选择。

第一步:在宿主机安装certbot。以Ubuntu为例:

curl -fsSL https://get.docker.com | sh && sudo usermod -aG docker $USER
sudo apt install certbot python3-certbot-nginx -y

第二步:申请证书。前提是域名A记录已经指向当前服务器IP。

sudo certbot certonly --standalone -d claw.example.com

第三步:把签发的证书复制到OpenClaw预期的路径。

sudo cp /etc/letsencrypt/live/claw.example.com/privkey.pem ./ssl/openclaw.key
sudo cp /etc/letsencrypt/live/claw.example.com/fullchain.pem ./ssl/openclaw.crt

第四步:重启容器,让新证书生效。

docker restart openclaw-https

至此,HTTPS配置完成。浏览器里再也不会出现“不安全”的警告,生产环境可以放心用了。