Nginx SSL证书部署:从申请到HTTPS访问的完整操作步骤

给 Nginx 配置 SSL 证书,本质上就是两件事:把证书文件放到服务器上,然后在 Nginx 配置里指向这两个文件并监听 443 端口。
下面按零基础能照做的顺序,把准备条件、配置片段、强制跳转、排错和验证讲清楚。

开始之前需要准备什么

先确认两件事:你的服务器已经装好 Nginx,并且域名已经解析到这台服务器。
可以用下面两条命令快速确认。

nginx -v
dig +short your-domain.com

nginx -v 能看到版本号说明 Nginx 已安装;dig 返回的 IP 要和服务器公网 IP 一致,否则证书配置好了也访问不到。

证书方面,你需要拿到两个文件,不同服务商命名可能略有差异,但作用固定:

  • 证书文件(公钥),常见名如 your-domain.com.pem 或 fullchain.pem
  • 私钥文件,常见名如 your-domain.com.key

建议统一放到 /etc/nginx/ssl/ 目录,权限收紧:

sudo mkdir -p /etc/nginx/ssl
sudo chmod 700 /etc/nginx/ssl
sudo chmod 600 /etc/nginx/ssl/your-domain.com.key

私钥文件权限设为 600,只有 root 可读,避免泄露。

把证书接入 Nginx 配置

找到你的站点配置文件,通常在 /etc/nginx/conf.d/ 或 /etc/nginx/sites-available/ 下。
用编辑器打开后,写一个监听 443 的 server 块:

server {
    listen 443 ssl;
    server_name your-domain.com www.your-domain.com;

    ssl_certificate     /etc/nginx/ssl/your-domain.com.pem;
    ssl_certificate_key /etc/nginx/ssl/your-domain.com.key;

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

    root  /var/www/your-site;
    index index.html index.php;
}

几个关键点:ssl_certificate 指向证书文件,ssl_certificate_key 指向私钥;ssl_protocols 建议只保留 TLSv1.2 和 TLSv1.3,
旧协议存在已知安全问题。

改完先做语法检查,再重载,不要直接 restart:

sudo nginx -t
sudo systemctl reload nginx

nginx -t 输出 syntax is ok 和 test is successful 才算通过。
如果报错,优先看提示的文件名和行号,多半是路径写错或少了分号。

让 HTTP 自动跳转到 HTTPS

配好 443 之后,用户用 http 访问仍然不会自动加密。
再加一个 80 端口的 server 块做跳转:

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

用 return 301 比 rewrite 更直接,也更省资源。
重载后访问 http://your-domain.com,浏览器地址栏应自动变成 https://。

高频报错怎么排查

配置过程中最常遇到这几类问题,按现象对号入座。

  • 浏览器提示“证书链不完整”:说明只配了站点证书,没带中间证书。解决办法是使用服务商提供的 fullchain 文件,或把中间证书内容拼接到站点证书后面。
  • 访问超时或连接被拒绝:先确认 443 端口在防火墙和安全组里都已放行。sudo ufw status 或云控制台安全组规则都要检查。
  • nginx -t 报 cannot load certificate:检查证书路径是否写错、文件是否存在、私钥权限是否被改成了其他人不可读之外的状态。
  • 浏览器仍显示“不安全”:确认访问的域名和证书里的域名完全一致,www 和裸域是否都包含在证书里。

每次改完配置,固定走一遍“nginx -t → reload → 浏览器无痕窗口访问”的流程,能省掉很多来回折腾。

怎么确认部署真的生效了

配置重载后,用命令和浏览器各验证一次。

curl -I https://your-domain.com

返回 HTTP/2 200 或 HTTP/1.1 200,且没有证书相关警告,说明握手正常。
再用浏览器打开,点击地址栏的锁图标,查看证书颁发者和有效期,确认域名匹配。

如果还想检查协议和加密套件,可以用在线 SSL 检测工具输入域名,重点看是否支持 TLSv1.2 以上、是否启用了不安全套件。
检测结果只作为参考,最终以浏览器实际访问和 curl 返回为准。

证书有有效期,到期前需要替换文件并重载 Nginx。
建议在日历里设置到期前提醒,或者用 certbot 这类工具配置自动续期,避免证书过期导致站点无法访问。

几个容易忽略的细节

同一台服务器上如果有多个站点,每个 server 块都要单独配置证书和 server_name,不要共用一份配置。

如果使用了 CDN 或反向代理,证书可能需要在 CDN 侧也配置一份,源站和 CDN 的证书是两回事,只配一边可能出现“部分环境正常、部分环境报错”的情况。

修改配置前先备份原文件,例如 cp your-site.conf your-site.conf.bak,出问题能快速回滚,比现场重写要稳妥得多。

分享到:
上一篇
Nginx负载均衡配置实战:从单机到多后端的完整步骤
下一篇
Nginx伪静态规则配置:从rewrite到try_files实操
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 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意