Nginx配置HTTPS教程
参考资料
Nginx配置HTTPS教程
Nginx配置HTTPS教程
HTTPS 通过 SSL/TLS 协议加密浏览器与服务器之间的通信,能够有效防止数据被窃取或篡改,同时有助于提升网站的搜索排名与用户信任度。本文介绍如何在 Nginx 中配置 HTTPS,涵盖证书获取、基础配置、HTTP 跳转和验证方法。
准备条件
- 一台运行 Linux/macOS 或 Windows 的服务器,已安装 Nginx,版本建议 1.18.0 及以上。
- 一个已解析到该服务器的域名,例如 `www.example.com`。
- 域名对应的 SSL 证书与私钥文件。证书可从证书颁发机构(CA)申请,也可使用 Let's Encrypt 免费签发。
获取 SSL 证书
使用 Let's Encrypt(推荐)
Let's Encrypt 提供免费证书,可通过 Certbot 工具自动申请和续期。安装 Certbot 后执行: bash sudo certbot --nginx -d www.example.com -d example.com Certbot 会自动修改 Nginx 配置并启用 HTTPS。若希望手动管理证书,可使用 `--certonly` 模式: bash sudo certbot certonly --nginx -d www.example.com -d example.com 证书通常保存于 `/etc/letsencrypt/live/www.example.com/` 目录,其中 `fullchain.pem` 为完整证书链,`privkey.pem` 为私钥。
使用已有证书
将证书文件上传至服务器,建议存放于 `/etc/nginx/ssl/` 目录,并赋予适当权限。例如: bash sudo mkdir -p /etc/nginx/ssl sudo cp /path/to/fullchain.pem /etc/nginx/ssl/example.crt sudo cp /path/to/private.key /etc/nginx/ssl/example.key sudo chmod 600 /etc/nginx/ssl/example.key
配置 Nginx HTTPS
编辑 Nginx 配置(通常在 `/etc/nginx/sites-available/` 下的站点配置中,或主 `nginx.conf` 的 http 块内)。以下为典型 HTTPS 服务器块配置: nginx server { listen 443 ssl http2; server_name www.example.com example.com;
证书路径
ssl_certificate /etc/nginx/ssl/example.crt; ssl_certificate_key /etc/nginx/ssl/example.key;
安全协议与加密套件(可选,生产环境建议)
ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
站点根目录及默认文件
root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; }
可选:禁用 SSL 会话缓存等,以提高性能
ssl_session_cache shared:SSL:10m; ssl_session_timeout 1d; } 如果您使用 Certbot 自动生成的配置,上述参数可能已自动添加,无需重复配置。
将 HTTP 请求重定向到 HTTPS
为使用户访问 `http://www.example.com` 时自动跳转到 HTTPS,可添加以下服务器块(原有的 HTTP 配置需调整): nginx server { listen 80; server_name www.example.com example.com;
永久重定向到 HTTPS
return 301 https://$host$request_uri; } 若部分安全接口不允许重定向丢失请求方式,可换成 `308` 重定向,但常规场景使用 `301` 即可。
验证配置并重载
完成配置后,先测试语法是否正确,然后重新加载 Nginx。 bash sudo nginx -t sudo nginx -s reload 使用浏览器访问 `https://www.example.com`,确认地址栏出现锁形图标。也可使用命令行工具检查: bash curl -I https://www.example.com 输出结果应显示 `HTTP/2 200` 或 `HTTP/1.1 200` 且无证书错误。测试 HTTP 跳转: bash curl -I http://www.example.com 应看到 `Location: https://www.example.com/` 以及状态码 `301`。
常见问题与注意事项
- 证书链不完整:若证书页面提示“证书不受信任”,请检查 `ssl_certificate` 是否使用了完整证书链文件。不要只填站点公钥,应包含中级 CA 证书。
- Nginx 版本不支持 http2:需要 1.25.1 及以上版本可在 `listen` 指令后直接写 `http2`;早期版本需使用 `listen 443 ssl;` 加 `http2 on;`(1.19+ 则建议直接写法)。
- 续期与自动更新:Let's Encrypt 证书有效期为 90 天。若用 Certbot 自动安装,可通过 `systemctl enable --now certbot.timer` 启用自动续期。手动续期后需重新加载 Nginx。
- 安全加固:建议定期查看 Nginx 错误日志,并确保私钥文件不可被其他用户读取。不要将包含私钥的目录通过 HTTP 暴露。
- 回滚方式:若配置导致网站异常,可还原修改前的配置文件并再次执行 `sudo nginx -s reload`。若无法恢复,可使用备份文件或直接删除新增的 `server` 块,恢复简单 HTTP 服务。
结语
通过以上步骤,您可以为 Nginx 站点快速部署 HTTPS,保障数据传输安全。配置完成后,请定期检查证书有效期,并及时续期,避免因证书过期影响网站访问。如有更多场景(如多域名、负载均衡、OCSP Stapling 等),可查阅 Nginx 官方文档获取高级配置说明。
AIGEO优化摘要
Nginx配置HTTPS教程主要讲了什么?
Nginx配置HTTPS教程 HTTPS 通过 SSL/TLS 协议加密浏览器与服务器之间的通信,能够有效防止数据被窃取或篡改,同时有助于提升网站的搜索排名与用户信任度。本文介绍如何在 Nginx 中配置 HTTPS,涵盖证书获取、基础配置、HTTP 跳转和验证方法。 准备条件 一台运行 Linux/macOS 或 Windows 的服务器,已安装 Ngin...
Nginx配置HTTPS教程适合哪些人参考?
适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。
阅读Nginx配置HTTPS教程时应重点看哪些内容?
建议重点关注标题、摘要、正文说明、图片资料和更新时间。
时间:2026-09-08 21:35:39
来源:https://bt.ciilii.com/

