Nginx SSL证书配置:从申请到HTTPS生效的完整步骤

给网站开启 HTTPS,核心就是在 Nginx 里加载 SSL 证书文件,并让 443 端口监听请求。
只要证书文件和私钥匹配、配置路径正确、端口已放行,执行 nginx -t 通过后重载服务即可生效。
下面按实际操作顺序讲清楚每一步。

开始前先确认三件事

配置之前先确认环境,能避免大部分低级错误。

登录服务器,执行:

nginx -v

能输出版本号说明 Nginx 已安装。
如果提示 command not found,需要先安装 Nginx。

然后确认你手里有证书文件。
常见证书包解压后包含以下文件:

  • yourdomain.crt 或 fullchain.pem:证书链文件,Nginx 用这个
  • yourdomain.key:私钥文件,必须保密
  • chain.pem 或 ca_bundle.crt:中间证书,部分证书商会单独提供

把这两个文件上传到服务器,建议路径:

/etc/nginx/ssl/yourdomain.crt
/etc/nginx/ssl/yourdomain.key

目录不存在就先创建:

mkdir -p /etc/nginx/ssl

注意:私钥文件权限建议设为 600,只允许 root 读取。

chmod 600 /etc/nginx/ssl/yourdomain.key

编写 443 端口的 server 配置

找到 Nginx 配置文件,通常在 /etc/nginx/conf.d/ 或 /etc/nginx/sites-available/ 下。
新建一个配置文件,例如 /etc/nginx/conf.d/yourdomain.conf。

写入以下内容:

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    ssl_certificate     /etc/nginx/ssl/yourdomain.crt;
    ssl_certificate_key /etc/nginx/ssl/yourdomain.key;

    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;

    root  /var/www/html;
    index index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }
}

关键点说明:

  • listen 443 ssl; 表示这个 server 块处理 HTTPS 请求
  • ssl_certificate 和 ssl_certificate_key 路径必须与实际文件位置一致
  • server_name 要写实际域名,不要保留示例域名
  • root 改成你网站的真实根目录

如果你的证书商提供的是 fullchain.pem,就把 ssl_certificate 指向它,不要只指向单独的域名证书,否则部分浏览器会提示证书链不完整。

检查配置、放行端口并重载

配置写完后不要直接重启,先测试语法:

nginx -t

输出 syntax is ok 和 test is successful 才算通过。
如果有报错,按提示行号检查路径和分号。

然后确认防火墙和云服务器安全组都已放行 443 端口。
以 firewalld 为例:

firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload

如果用的是 ufw:

ufw allow 443/tcp

云服务器还需要在控制台的安全组里添加入方向规则,允许 TCP 443。
这一步经常被忽略,导致配置没问题但外网访问不通。

最后重载 Nginx:

systemctl reload nginx

验证 HTTPS 是否真正生效

先用 curl 在服务器本机测试:

curl -I https://yourdomain.com

返回 HTTP/2 200 或 HTTP/1.1 200 说明 HTTPS 已通。
如果返回证书错误,检查证书文件是否完整、域名是否匹配。

再用浏览器访问,点击地址栏的锁图标,查看证书详情。
确认颁发者和有效期正确。

如果想让 HTTP 自动跳转到 HTTPS,再加一个 80 端口的 server 块:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$host$request_uri;
}

再次执行 nginx -t 和 systemctl reload nginx。

常见报错怎么排查

报错 cannot load certificate:多数是路径写错或文件不存在。
用 ls -l 确认路径,注意大小写。

浏览器提示证书不受信任:通常是只配了域名证书,没有配中间证书。
把 fullchain.pem 或合并后的证书链文件指向 ssl_certificate。

443 端口无法连接:按顺序检查 Nginx 是否运行、防火墙是否放行、云安全组是否放行。

配置测试通过但访问仍是旧证书:可能是浏览器缓存,也可能是 Nginx 没有真正重载。
执行 systemctl reload nginx 后换浏览器无痕模式再试。

证书即将过期:免费证书一般有效期较短,建议在到期前重新签发并替换文件,然后重载 Nginx。
可以配合 certbot 等工具自动续期,但自动续期后仍需确认重载步骤是否配置正确。

整个流程中,最容易出问题的不是配置语法,而是证书链不完整和 443 端口未放行。
配置完成后用 curl -I 和浏览器双重验证,能快速定位是配置问题还是网络问题。

分享到:
上一篇
Nginx 负载均衡器配置教程:从零到生效验证
下一篇
Nginx性能优化调优:从连接数到缓存的实际配置步骤
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意