Hermes Agent启用HTTPS需三类配置:一、开发用自签名证书;二、生产用CA证书直连;三、Nginx反向代理终止SSL。另需HTTP强制重定向及多方式验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在部署Hermes Agent后需对外提供安全的Web服务接口,但访问时出现连接不安全警告或无法建立加密通道,则很可能是HTTPS未正确启用。以下是为Hermes Agent配置HTTPS的具体操作步骤:
一、使用自签名证书启用本地HTTPS
该方法适用于开发测试环境,可快速验证HTTPS通信链路是否通畅,无需依赖公共CA,但浏览器会显示安全警告。
1、生成ED25519密钥对与自签名证书:
执行命令 openssl req -x509 -newkey ed25519 -keyout agent.key -out agent.crt -days 365 -nodes -subj "/CN=localhost"
2、确认证书文件权限为仅属主可读:
执行命令 chmod 400 agent.key && chmod 444 agent.crt
3、将证书与私钥复制至Hermes Agent配置目录:
执行命令 cp agent.crt agent.key /etc/hermes/tls/
4、在Agent启动参数中指定TLS证书路径:
执行命令 hermes agent start --tls-cert-file /etc/hermes/tls/agent.crt --tls-key-file /etc/hermes/tls/agent.key
二、集成系统信任的CA证书启用生产HTTPS
该方法适用于生产环境,确保客户端(如浏览器、API调用方)无需手动信任证书,依赖操作系统或容器运行时预置的可信根证书库。
1、获取受信CA签发的域名证书(含完整证书链)及对应私钥文件;
2、将证书链文件(如fullchain.pem)与私钥(privkey.pem)存放于安全路径,例如 /etc/hermes/tls/prod/;
3、设置文件访问权限,禁止组和其他用户读取:
执行命令 chmod 400 /etc/hermes/tls/prod/privkey.pem && chmod 444 /etc/hermes/tls/prod/fullchain.pem
4、在Agent配置文件中添加TLS字段:
设置 tls.cert_file: "/etc/hermes/tls/prod/fullchain.pem"
设置 tls.key_file: "/etc/hermes/tls/prod/privkey.pem"
设置 tls.ca_bundle: "/etc/ssl/certs/ca-certificates.crt"
5、重启Agent服务使配置生效:
执行命令 hermes agent restart
三、通过反向代理前置HTTPS(Nginx方案)
该方法将HTTPS终止于Nginx层,Hermes Agent内部以HTTP方式运行,降低Agent自身TLS配置复杂度,同时复用Nginx成熟的SSL管理能力。
1、安装并启用Nginx服务,确保其监听443端口;
2、将CA签发的证书与私钥部署至Nginx配置目录,例如 /etc/nginx/ssl/hermes.example.com.crt 与 /etc/nginx/ssl/hermes.example.com.key;
3、在Nginx server块中配置SSL参数:
启用 ssl on;
指定 ssl_certificate 与 ssl_certificate_key 路径;
设置 ssl_protocols TLSv1.2 TLSv1.3;
配置 ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
4、添加proxy_pass规则,将请求转发至Hermes Agent本地HTTP端口(如8080):
location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }
5、验证Nginx配置语法并重载:
执行命令 nginx -t && nginx -s reload
四、强制重定向HTTP至HTTPS
该步骤确保所有明文HTTP请求均被自动升级为HTTPS,防止用户误用非加密通道,提升整体通信安全性。
1、在Nginx的HTTP server块中添加重定向规则:
server { listen 80; server_name hermes.example.com; return 301 https://$server_name$request_uri; }
2、确认DNS已解析hermes.example.com至当前服务器IP;
3、开放服务器防火墙的443端口,关闭或限制80端口访问(若仅需重定向,可保留80端口);
4、执行命令 curl -I http://hermes.example.com,确认返回状态码为301 Moved Permanently且Location头指向HTTPS地址;
五、验证HTTPS配置有效性
该步骤用于确认证书部署无误、加密套件兼容、证书链完整,避免因配置疏漏导致客户端握手失败。
1、使用OpenSSL命令行工具检查服务端TLS响应:
执行命令 openssl s_client -connect hermes.example.com:443 -servername hermes.example.com
2、在输出结果中确认以下关键项存在:
Server certificate 部分包含有效Subject与Issuer信息;
Verify return code: 0 (ok) 表示证书链验证通过;
SSL handshake has read XXX bytes and written YYY bytes 表示握手完成;
3、使用在线工具(如SSL Labs SSL Test)扫描域名,获取A+评级确认配置符合最佳实践;
4、在浏览器中访问 https://hermes.example.com,确认地址栏显示锁形图标且无“不安全”提示;


















