全站https强制加密需闭环“跳转+加密+浏览器信任”:①80端口用return 301跳转https;②443端口启用tlsv1.2/1.3并配好证书链;③添加hsts头含includesubdomains和preload;④开启ocsp stapling与会话缓存。

要让网站真正实现全站加密访问,光配好 443 端口的 HTTPS 还不够,关键在于“全站”——所有 HTTP 请求都必须强制跳转到 HTTPS,且加密配置本身要符合当前(2026 年)主流安全标准。下面分三块说清楚。
证书获取与文件准备
生产环境推荐用 Let’s Encrypt 免费证书,90 天有效期,配合 certbot 可全自动续期。拿到的通常是三个文件:
-
域名证书(如
example.com.crt或fullchain.pem) -
私钥(
example.com.key,权限必须设为600) -
中间证书链(常合并进
fullchain.pem,避免浏览器提示“不完整链”)
建议统一存放在 /etc/nginx/ssl/ 目录下,路径清晰、权限可控。
Nginx HTTPS 基础配置
在 server 块中启用 443 端口并加载证书:
-
listen 443 ssl http2;—— 同时启用 HTTPS 和 HTTP/2,提升性能 ssl_certificate /etc/nginx/ssl/fullchain.pem;ssl_certificate_key /etc/nginx/ssl/privkey.pem;- 强制使用 TLS 1.2/1.3:
ssl_protocols TLSv1.2 TLSv1.3; - 禁用不安全协议和弱密钥交换:
ssl_prefer_server_ciphers off;+ 合理ssl_ciphers列表(推荐 Mozilla 的 modern 配置)
强制全站 HTTPS 与增强安全策略
仅开 443 不等于“全站加密”,必须堵住 HTTP 入口并加固传输层:
- 80 端口做 301 永久重定向:
return 301 https://$host$request_uri; - 启用 HSTS:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;(上线前确认子域名全部支持 HTTPS) - 开启 OCSP Stapling:
ssl_stapling on;+ssl_stapling_verify on;,加快证书状态验证 - 会话复用优化:
ssl_session_cache shared:SSL:10m;+ssl_session_timeout 4h;
配完务必执行 nginx -t 测试语法,再 nginx -s reload 生效。最后用 securityheaders.com 或 SSL Labs 扫描验证是否达到 A+ 级评分。











