在腾讯云 CVM 上配置 Nginx 反向代理 HTTPS 证书时,需将证书文件部署至 `/etc/nginx/conf` 路径并重启 `nginx.service` 服务,且根据 2024 年 6 月 23 日的配置记录,推荐启用 `TLSv1.2` 和 `TLSv1.3` 协议以确保安全性。
原因分析
配置 HTTPS 反向代理的核心在于通过 Nginx 终止 SSL 连接,将解密后的流量转发至后端服务,例如 GrayLog Web 接口的 8000 端口。根据 2025 年 8 月 18 日的教程,源站证书和反代服务器证书必须一致,否则会出现错误,这是因为 HTTPS 握手阶段需要验证证书链的完整性。
解决方案
证书申请与上传
登录腾讯云 SSL 证书控制台申请免费证书,下载 Nginx 版本后解压,获得 `1_bundle.crt` 和 `1_mykey.key` 文件。将这两个文件上传至服务器的 `/etc/nginx/conf` 路径下,若文件不在该路径下,配置时需写绝对路径。
Nginx 配置文件修改
使用 `sudo vim /etc/nginx/conf.d/default.conf` 编辑配置,添加 `listen 443 ssl http2;` 监听指令。在 server 块中指定 `ssl_certificate "/etc/nginx/ssl/server.crt";` 和 `ssl_certificate_key "/etc/nginx/ssl/server.key";`,并设置 `ssl_protocols TLSv1.2 TLSv1.3;` 以禁用不安全协议。
反向代理规则设置
在 location 块中配置 `proxy_pass http://127.0.0.1:8000;` 将请求转发至后端,同时设置 `proxy_set_header Host $http_host;` 确保后端获取真实主机头。若涉及域名验证,需在 80 端口配置 `/.well-known/pki-validation/fileauth.txt` 的反向代理地址。
服务重启与验证
执行 `systemctl restart nginx.service` 重启服务,若报错可运行 `systemctl status nginx.service` 查看状态,常见错误信息为 `nginx.service - the nginx http and reverse`,通常由证书路径错误引起。
注意事项
配置完成后若浏览器地址栏没有小锁图标,需清除浏览器缓存,有用户因未清除缓存浪费了不少时间误以为配置失败。此外,不同来源对 SSL 协议版本建议不同,2024 年 2 月 20 日的资料提及 `TLSv1 TLSv1.1 TLSv1.2`,但 2024 年 6 月 23 日的实践更推荐 `TLSv1.2 TLSv1.3` 以提升安全性。
参考来源
来源:腾讯云开发者社区 - 腾讯云 SSL 证书_nginx 反向代理配置证书
来源:WalkingCloud - 使用腾讯云 SSL 证书为 GrayLog Web 接口配置 nginx HTTPS/SSL 反向代理
来源:腾讯云开发者社区 - 腾讯云上配置 nginx
原文链接:https://www.zjcp.cc/ask/9762.html
