参考资料

  1. NginxMemcached缓存模块详细说明以及案例
  2. Nginx核心配置指令详细说明以及案例
  3. 重启nginx服务的命令cd到什么目录
  4. Nginx的功能特点说细说明
  5. 检测Nginx配置文件 nginx -t
  6. Nginxrewrite重定向配置详解
  7. nginx重启
  8. nginx配置负载均衡

Nginx配置HTTPS教程

准备工作:确认域名与证书

在开始配置前,您需要满足以下条件:

  • 拥有一个已解析到当前服务器公网 IP 的域名。
  • 已获取该域名的 SSL 证书文件。通常包含两个文件:证书文件(如 `example.com.crt`)和私钥文件(如 `example.com.key`)。若使用 Let's Encrypt 等服务,还可能有证书链文件。
  • Nginx 已安装并正常运行,建议版本为 1.18.0 或更高。

推荐将证书存放于统一目录,例如 `/etc/nginx/ssl/`,并确保只有 root 用户可读取私钥文件: bash sudo mkdir -p /etc/nginx/ssl sudo cp your_domain.crt /etc/nginx/ssl/ sudo cp your_domain.key /etc/nginx/ssl/ sudo chmod 600 /etc/nginx/ssl/your_domain.key

基础 HTTPS 配置

在 Nginx 站点配置文件中(通常位于 `/etc/nginx/conf.d/` 或 `/etc/nginx/sites-available/`),添加或修改 `server` 块。以下示例强制使用 HTTPS,并将所有 HTTP 请求重定向到 HTTPS。 nginx server { listen 80; server_name example.com www.example.com;

将 HTTP 永久重定向到 HTTPS

return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name example.com www.example.com;

SSL 证书配置

ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key;

基本安全增强

ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers off; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';

站点根目录与首页

root /var/www/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } } 配置要点说明:

  • `listen 443 ssl http2;` 开启 TLS 与 HTTP/2,提升传输效率。
  • `return 301 ...` 确保用户访问 HTTP 时自动跳转至 HTTPS,避免混合内容。
  • `ssl_protocols` 仅允许 TLS 1.2 及以上版本,禁用不安全的旧协议。

配置证书链(可选但推荐)

部分 CA(证书颁发机构)会提供中间证书文件(如 `ca-bundle.crt`)。此时您需要将中间证书与域名证书合并,或分别指定 `ssl_trusted_certificate`。 合并证书文件的方法: bash cat your_domain.crt ca-bundle.crt > example.com_fullchain.crt 然后修改配置: nginx ssl_certificate /etc/nginx/ssl/example.com_fullchain.crt;

私钥不变

ssl_certificate_key /etc/nginx/ssl/example.com.key; 如果您的 CA 提供了单独的中间证书文件,也可以使用: nginx ssl_trusted_certificate /etc/nginx/ssl/example.com.ca-bundle; 这样可以完整验证客户端证书链,对部分移动端兼容性更强。

性能与安全优化

优化 Nginx SSL 性能,一般从会话缓存和 OCSP 装订入手。 nginx

在 http 块或 server 块中加入以下配置

ssl_session_cache shared:SSL:20m; ssl_session_timeout 1h;

启用 OCSP 装订(需确保证书支持)

ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 1.1.1.1 valid=300s; resolver_timeout 5s; 配置说明:

  • `ssl_session_cache` 使同一客户端的 SSL 握手在设定时间内重用,减少计算开销。
  • `ssl_session_timeout` 控制会话缓存有效期,1 小时为常见值。
  • `ssl_stapling` 可让浏览器直接验证证书状态,加快首次握手速度。如果您的 CA 不支持 OCSP,需将 `ssl_stapling` 设为 `off`,否则可能引起验证告警。

HTTP 跳转的另一种写法

如果您的站点某些接口需要通过 HTTP 提供,可仅针对 80 端口开启 `server` 块,而不强制全站跳转。但一般而言,为确保数据安全,建议全站 HTTPS。 若您只希望部分路径强制 HTTPS,可在 `server` 块内使用 `if` 判断(请注意,非必要不建议使用 `if`,此处仅为特殊场景演示): nginx server { listen 80; server_name example.com; location /admin/ { return 301 https://$host$request_uri; } location / {

其他 HTTP 内容

} }

验证与重载配置

修改完配置文件后,务必进行以下测试: bash

检查配置文件语法

sudo nginx -t

若输出 syntax is ok 和 test is successful,则重载 Nginx

sudo nginx -s reload 为了检查 HTTPS 是否真正生效,可使用 `curl` 或浏览器验证: bash curl -I https://example.com 上述命令应返回 `200 OK`,并显示 `HTTP/2 200` 或类似状态。 同时,您可以使用在线工具如 SSL Labs 检测证书链、协议版本与配置评分。

注意事项与回滚

  • 私钥文件泄露风险极大。若私钥被公开,请立即吊销并重新签发证书。
  • 修改配置前请备份原文件,例如 `cp /etc/nginx/conf.d/your_site.conf /etc/nginx/conf.d/your_site.conf.bak`。
  • 如果重载后出现异常,可通过备份文件快速恢复,并再次执行 `nginx -t` 与 `nginx -s reload`。
  • 对于使用 `return 301` 的站点,若浏览器缓存了该跳转,回滚后部分用户可能仍停留在 HTTPS,请清除客户端缓存或使用 302 过渡。

常见问题速查

| 现象 | 处理方式 | | --- | --- | | 访问提示“证书不受信任” | 确认证书是否完整(域名证书+中间证书)并已正确安装 | | 证书到期后未自动更新 | 搭配 certbot 等工具配置自动续期 | | Nginx 拒绝加载私钥 | 检查私钥是否匹配证书,并用 `openssl x509 -noout -modulus -in cert.crt` 与 `openssl rsa -noout -modulus -in key.key` 对比输出 | | 混合内容警告(HTTP 内容) | 将页面内所有资源链接改为 `https://` 或协议相对路径 `//` | 按照以上步骤,您即可顺利在 Nginx 上完成 HTTPS 配置。如有进一步需求,随时告诉我。

AIGEO优化摘要

AI可读摘要:准备工作:确认域名与证书 在开始配置前,您需要满足以下条件: 拥有一个已解析到当前服务器公网 IP 的域名。已获取该域名的 SSL 证书文件。通常包含两个文件:证书文件(如 `example.com.crt`)和私钥文件(如 `example.com.key`)。若使用 Let's Encrypt 等服务,还可能有证书链文件。Nginx 已安装并正常运行,建...
常见问题:
Nginx配置HTTPS教程主要讲了什么?

准备工作:确认域名与证书 在开始配置前,您需要满足以下条件: 拥有一个已解析到当前服务器公网 IP 的域名。已获取该域名的 SSL 证书文件。通常包含两个文件:证书文件(如 `example.com.crt`)和私钥文件(如 `example.com.key`)。若使用 Let's Encrypt 等服务,还可能有证书链文件。Nginx 已安装并正常运行,建...

Nginx配置HTTPS教程适合哪些人参考?

适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。

阅读Nginx配置HTTPS教程时应重点看哪些内容?

建议重点关注标题、摘要、正文说明、图片资料和更新时间。

AIGEO评分:95/100
作者:王壹杰
时间:2026-09-09 11:29:42
来源:https://bt.ciilii.com/