为openclaw docker部署配置https,需生成自签名证书并挂载至容器内指定路径,修改配置文件启用https_port及证书路径,启动时映射443端口;生产环境可替换为let’s encrypt正式证书。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

为OpenClaw Docker部署配置HTTPS,需在容器内启用SSL/TLS加密通信,确保Web界面和API请求全程受保护,避免凭证、日志或敏感操作数据明文传输。
生成自签名证书(开发/测试环境)
第一步:在宿主机项目根目录下创建ssl子目录
mkdir -p ./ssl
第二步:执行OpenSSL命令生成私钥与证书
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"
这一步必须在宿主机执行,【证书路径必须与后续Docker卷挂载路径严格一致】。若用通配符域名(如CN=*.example.com),需确保DNS解析指向当前服务器IP,否则浏览器会报“NET::ERR_CERT_COMMON_NAME_INVALID”。
修改OpenClaw配置文件启用HTTPS
打开config.yaml或app.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或sudo firewall-cmd --add-port=443/tcp --permanent。
替换为Let’s Encrypt正式证书(生产环境)
第一步:在宿主机安装certbot
curl -fsSL https://get.docker.com | sh && sudo usermod -aG docker $USER
sudo apt install certbot python3-certbot-nginx -y(Ubuntu)
第二步:申请证书(需已配置域名A记录指向该服务器)
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











