91hwl ← 返回首页
Engineering Note · 2026-01-19

Nginx 强制 HTTPS 跳转的安全性考量

把 HTTP 统一收束到 HTTPS 看似只是一个 301,实际涉及证书、HSTS、代理头和长期运维。

最常见的配置是让 80 端口只做一件事:把请求永久跳转到对应的 HTTPS 地址。这样可以减少明文入口长期存在的机会,也能让站点 URL 保持一致。

为什么使用 301

对于已经确定只通过 HTTPS 提供服务的域名,永久跳转可以让浏览器、搜索引擎和外部链接逐步统一到加密地址。

核心原则

  • 80 端口只负责跳转,不承载业务。
  • 443 端口使用有效证书,并开启 TLS 1.2/1.3。
  • 反向代理时继续传递真实 IP 与协议头。
  • 确认 HTTPS 稳定后再长期启用 HSTS。

HSTS 需要谨慎

HSTS 会告诉浏览器:在一段时间内,这个域名只能通过 HTTPS 访问。它对稳定的正式站点很有价值,但如果证书、子域名或迁移策略还没有确定,就不应该过早把很长的 max-age 当成装饰项。

证书续期

真正可靠的 HTTPS 不是“今天证书能用”,而是续期机制也经过验证。使用自动化证书工具时,应定期通过 dry-run 验证更新流程,避免到期前才发现 Nginx server block 或域名验证已经失效。

结论

强制 HTTPS 的配置本身很短,但它应该被视为一条长期运维链路:DNS、证书、Nginx、跳转策略和续期缺一不可。