CN2 VPS 安装 SSL 证书后 HTTPS 跳转失败怎么排查 Nginx 配置

文章导读
Nginx 配置 HTTPS 跳转失败通常是因为 80 端口监听缺失、return 语句语法错误或证书路径不正确。排查时优先检查 Nginx 配置文件语法,确认 80 端口是否强制跳转 443,并验证证书文件权限是否允许 Nginx 读取。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

Nginx 配置 HTTPS 跳转失败通常是因为 80 端口监听缺失、return 语句语法错误或证书路径不正确。排查时优先检查 Nginx 配置文件语法,确认 80 端口是否强制跳转 443,并验证证书文件权限是否允许 Nginx 读取。

先说结论:配置错误、端口阻塞或证书路径问题是导致 HTTPS 跳转失败的三大主因。

  • 先确认 Nginx 配置语法通过
  • 先处理 80 端口跳转逻辑
  • 再验证 HTTPS 响应头

命令速用版

nginx -t
systemctl restart nginx
curl -I http://yourdomain.com

为什么会这样

跳转依赖 HTTP 状态码 301 或 302,若 Nginx 未监听 80 端口或 rewrite 规则冲突,浏览器无法完成协议切换。

CN2 VPS 与普通 VPS 在 Nginx 配置层面无差异,但需留意服务商安全组是否放行 80 和 443 端口。

分步处理

第一步检查配置文件语法。执行 nginx -t 命令,若显示 syntax is ok 则继续,否则按提示修改配置文件。

第二步确认 80 端口 server 块配置。确保存在 listen 80; 段落,并包含 return 301 https://$host$request_uri; 指令。

CN2 VPS 安装 SSL 证书后 HTTPS 跳转失败怎么排查 Nginx 配置

第三步核对证书路径。检查 ssl_certificate 和 ssl_certificate_key 指向的文件是否存在,且 Nginx 运行用户有读取权限。

第四步检查防火墙设置。确认 VPS 服务商控制台安全组规则允许 inbound 80 和 443 端口流量。

怎么验证是否生效

使用 curl -I http://yourdomain.com 命令,观察响应头 Location 是否指向 https 开头地址且状态码为 301。

浏览器访问 http 地址,地址栏应自动变为 https 且无证书报错。

常见坑

配置跳转循环:HTTPS server 块内错误配置了跳转回 HTTP 的规则,导致浏览器报错 ERR_TOO_MANY_REDIRECTS。

浏览器缓存:之前失败的 302 跳转被浏览器缓存,修改配置后需清除浏览器缓存或使用无痕模式验证。

CN2 VPS 安装 SSL 证书后 HTTPS 跳转失败怎么排查 Nginx 配置

CDN 干扰:若域名接入 CDN,需在 CDN 控制台开启强制 HTTPS,否则源站跳转可能被 CDN 策略覆盖。

常见问题

301 和 302 跳转有什么区别

301 是永久跳转,利于 SEO 权重传递;302 是临时跳转,搜索引擎可能不更新索引。

证书路径正确但仍报错怎么办

检查文件权限,确保 Nginx 进程用户(如 www-data)有权读取私钥文件。

www 和非 www 域名跳转不一致

在 server_name 中同时填写 www 和非 www 域名,或单独配置一个 server 块将非首选域名跳转至首选域名。

参考来源

Nginx 官方文档 - Configuring HTTPS servers https://nginx.org/en/docs/http/configuring_https_servers.html