Nginx配置HTTPS需正确安装SSL证书并启用443端口监听:将证书(fullchain.pem)和私钥(.key)存于/etc/nginx/ssl/,设私钥权限600;server块中配置listen 443 ssl、ssl_certificate与ssl_certificate_key路径;另配80端口301跳转HTTPS;最后nginx -t验证并reload生效。

要让 Nginx 作为静态服务器支持 HTTPS,核心是两件事:正确安装 SSL 证书,并在配置中准确指定证书路径和启用 HTTPS 监听。只要路径对、格式对、权限对,Nginx 就能顺利加载证书并提供加密服务。
SSL 证书文件准备与存放位置
你需要两个关键文件:证书文件(通常为 your_domain.crt 或 fullchain.pem)和私钥文件(your_domain.key)。推荐将它们统一存放在 /etc/nginx/ssl/ 目录下,例如:
- /etc/nginx/ssl/example.com.crt
- /etc/nginx/ssl/example.com.key
确保私钥文件权限严格,执行:
chmod 600 /etc/nginx/ssl/example.com.key
避免 Nginx 启动时报 “permission denied” 错误。
Nginx 配置中启用 HTTPS 并指定证书路径
在 server 块中监听 443 端口,添加 ssl on(旧版本)或更推荐的 listen 443 ssl,并用 ssl_certificate 和 ssl_certificate_key 指向对应文件:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
注意:ssl_certificate 应指向包含域名证书 + 中间证书的完整链文件(即 fullchain.pem),不是仅域名证书;否则部分客户端可能因信任链不全而报错。
HTTP 自动跳转 HTTPS 的安全重定向
为强制加密访问,添加一个监听 80 端口的 server 块,返回 301 重定向:
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}
这样所有 HTTP 请求都会被安全跳转到 HTTPS,避免用户手动输入 http:// 导致明文传输。
验证配置并重启 Nginx
修改完配置后,务必先检查语法是否正确:
- nginx -t —— 输出 “syntax is ok” 和 “test is successful” 才表示无误
- systemctl reload nginx 或 nginx -s reload —— 平滑重载配置
然后用浏览器访问 https://your-domain.com,查看地址栏锁图标是否显示,或使用 curl -I https://your-domain.com 检查响应头中是否有 200 OK 和 Strict-Transport-Security(可选添加)。










