应配置nginx反代+certbot自动签发ssl证书:创建含ssl路径、hsts头及tls协议的server块,执行sudo certbot --nginx -d hermes.yourdomain.com申请并自动部署可信证书,确保https安全访问。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您已部署Hermes Agent并希望通过公网安全访问其WebUI或API接口,但浏览器提示“不安全连接”或无法建立HTTPS连接,则很可能是未正确配置SSL证书。以下是为Hermes Agent配置HTTPS SSL证书的具体操作步骤:
一、通过Nginx反向代理启用HTTPS
该方法适用于已将Hermes Agent运行在本地端口(如3000或8000)的场景,利用Nginx作为前端代理,统一处理TLS终止,无需修改Agent内部代码,部署稳定且兼容性高。
1、确认Nginx已安装并正常运行,执行sudo nginx -t验证配置语法。
2、创建站点配置文件/etc/nginx/sites-available/hermes,写入含SSL重定向与代理规则的server块。
3、在配置中明确指定SSL证书路径:ssl_certificate /etc/nginx/ssl/hermes.yourdomain.com/fullchain.pem;
4、配置私钥路径:ssl_certificate_key /etc/nginx/ssl/hermes.yourdomain.com/privkey.pem;
5、启用HTTP到HTTPS强制跳转,在非SSL server块中添加return 301 https://$host$request_uri;。
6、启用SSL协议与密钥交换策略,加入以下行以提升安全性:ssl_protocols TLSv1.2 TLSv1.3;与ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;。
7、启用HSTS头增强传输安全:add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;。
8、启用配置链接并重载Nginx:sudo ln -s /etc/nginx/sites-available/hermes /etc/nginx/sites-enabled/ && sudo systemctl reload nginx。
二、使用Certbot自动申请并续期Let’s Encrypt证书
该方式可免费获取受信任的SSL证书,并支持全自动续期,适合面向公网的生产环境,避免手动更新证书导致服务中断。
1、确保域名已解析至服务器IP,并开放80端口用于ACME HTTP挑战验证。
2、安装certbot及Nginx插件:sudo apt install -y certbot python3-certbot-nginx。
3、执行证书申请命令:sudo certbot --nginx -d hermes.yourdomain.com,Certbot将自动修改Nginx配置并部署证书。
4、验证证书是否生效:访问https://hermes.yourdomain.com,检查浏览器地址栏是否显示锁形图标。
5、确认自动续期任务已注册:sudo systemctl list-timers | grep certbot,默认由systemd timer每日检查。
6、手动测试续期流程:sudo certbot renew --dry-run,确保无报错。
三、在Docker容器内直接挂载证书并启用TLS监听
该方法适用于采用Docker原生部署Hermes Agent、且需Agent自身处理TLS的场景,适用于gRPC或自定义HTTPS服务端口需求,绕过反向代理层。
1、准备证书文件:将fullchain.pem与privkey.pem置于宿主机安全目录,例如/opt/hermes/certs/。
2、启动容器时通过-v参数挂载证书路径:docker run -v /opt/hermes/certs:/app/certs:ro ...。
3、设置环境变量启用TLS:HERMES_TLS_ENABLED=true。
4、指定证书与私钥位置:HERMES_TLS_CERT_PATH=/app/certs/fullchain.pem与HERMES_TLS_KEY_PATH=/app/certs/privkey.pem。
5、修改启动命令,使Agent监听HTTPS端口(如443或8443),而非默认HTTP端口。
6、若使用自签名证书,需在客户端(如curl或浏览器)导入根CA证书以避免信任警告。
四、生成自签名证书用于开发或内网测试
当处于离线环境、内网部署或仅需快速验证HTTPS功能时,可使用OpenSSL快速生成自签名证书,满足基础加密传输需求,无需域名或公网可达性。
1、安装OpenSSL(如未预装):sudo apt install -y openssl。
2、创建证书存放目录:mkdir -p /tmp/hermes-ssl。
3、生成私钥:openssl genrsa -out /tmp/hermes-ssl/privkey.pem 2048。
4、生成证书签名请求(CSR):openssl req -new -key /tmp/hermes-ssl/privkey.pem -out /tmp/hermes-ssl/csr.pem -subj "/CN=localhost"。
5、自签发证书(有效期365天):openssl x509 -req -days 365 -in /tmp/hermes-ssl/csr.pem -signkey /tmp/hermes-ssl/privkey.pem -out /tmp/hermes-ssl/fullchain.pem。
6、将生成的fullchain.pem和privkey.pem按前述任一方法(Nginx或Docker)加载使用。
7、注意:浏览器访问时将提示“您的连接不是私密连接”,需手动点击“高级→继续前往localhost(不安全)”;此方式严禁用于生产环境或公网暴露服务。











