网站启用 HTTPS 的完整操作:从申请证书到 Nginx 跳转验证

网站要上 HTTPS,核心动作就三步:拿到有效的 SSL 证书、在 Web 服务器上绑定域名和 443 端口、把 HTTP 请求跳转到 HTTPS。
下面以最常见的 Nginx 环境为例,给出从零操作到验证的完整路径;
如果你用的是宝塔面板,操作位置会单独说明。

动手之前先确认三件事

HTTPS 不是装个插件就能生效,先检查基础条件是否满足:

  • 域名已经解析到服务器 IP:在本地终端执行 ping 你的域名,确认返回的是这台服务器的公网 IP。解析没生效时,证书申请和访问验证都会失败。
  • 服务器 443 端口已放行:云服务器要在安全组里放行 TCP 443;系统内部如果开了 firewalld 或 ufw,也要放行 443。只改安全组不改系统防火墙,外部仍然连不上。
  • Web 服务器正在运行:执行 nginx -v 能看到版本号,systemctl status nginx 显示 active。如果网站本身还没跑起来,先解决 80 端口访问问题再上 HTTPS。

证书来源有两种常见选择:云厂商提供的免费 DV 证书,或者 Let's Encrypt 通过 certbot 自动签发。
免费证书一般有效期较短,到期需要续签,建议在日历里留一个提醒。

申请证书并上传到服务器

在云厂商 SSL 证书控制台申请证书时,填写你要使用的域名,完成域名验证后下载 Nginx 格式的证书包。
解压后通常得到两个文件:域名.pem(证书链)和 域名.key(私钥)。

把这两个文件上传到服务器固定目录,例如:

mkdir -p /etc/nginx/ssl
# 将本地证书上传到该目录,保持文件名清晰
ls /etc/nginx/ssl

私钥文件权限建议收紧为仅 root 可读:

chmod 600 /etc/nginx/ssl/你的域名.key

如果用 certbot 自动签发,在 Nginx 已运行的前提下执行 certbot --nginx -d 你的域名,按提示选择自动跳转即可,证书路径会由工具写入配置。

在 Nginx 里配置 443 并强制跳转

找到当前站点的 server 配置块,通常在 /etc/nginx/conf.d/ 或 /etc/nginx/sites-available/ 下。
保留原来的 80 端口 server 块用于跳转,再新增一个监听 443 的 server 块:

server {
    listen 80;
    server_name 你的域名;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name 你的域名;

    ssl_certificate     /etc/nginx/ssl/你的域名.pem;
    ssl_certificate_key /etc/nginx/ssl/你的域名.key;

    location / {
        root  /var/www/html;
        index index.html index.php;
    }
}

保存后先做配置检查,再平滑重载:

nginx -t
systemctl reload nginx

nginx -t 输出 syntax is ok 和 test is successful 才说明配置能被加载。
如果报错,按提示的行号检查证书路径、分号或括号是否遗漏。

使用宝塔面板时,路径是:网站 → 设置 → SSL → 粘贴证书和私钥 → 保存并强制 HTTPS。
面板会自动改写 Nginx 配置,适合不想手写配置的新手,但同样要确认安全组已放行 443。

常见报错与避坑点

配置过程中最容易卡在几个固定位置:

  • 浏览器提示证书不受信任:多半是证书链不完整,只上传了域名证书而没带中间证书。重新下载完整链文件,或确认 pem 文件里包含多段证书。
  • 访问超时或连接被拒绝:先查安全组和系统防火墙的 443 是否放行,再确认 Nginx 是否真的在监听:ss -tlnp | grep 443。
  • HTTP 跳转后打不开:检查 301 跳转的目标域名是否和证书域名完全一致,www 与非 www 被视为不同域名,证书不覆盖就会报警告。
  • 改完配置网站 502:如果站点背后有 PHP 或后端服务,确认 upstream 地址和端口没被误改,必要时回滚到修改前的配置备份。

涉及修改 Nginx 配置前,建议先备份原文件:cp 站点.conf 站点.conf.bak,出问题时能快速恢复。

验证 HTTPS 是否真正生效

不要只看浏览器地址栏的小锁,用命令做一次客观检查:

curl -I https://你的域名
curl -I http://你的域名

第一条应返回 HTTP/2 200 或 HTTP/1.1 200,第二条应返回 301 并指向 https 地址。
还可以用 openssl s_client -connect 你的域名:443 -servername 你的域名 查看证书有效期和颁发者,确认没有过期。

最后在浏览器里分别访问 http:// 和 https:// 两个地址,确认前者自动跳到后者,页面资源(图片、CSS、JS)没有因为混合内容被拦截。
如果页面样式错乱,检查代码里是否还有写死的 http:// 资源地址,改成相对路径或 https 即可。

关于证书续签和长期维护

免费证书到期不会自动提醒到每个人,建议开启云厂商的到期通知,或在服务器上配置 certbot 的自动续签定时任务。
续签后同样执行 nginx -t 和 systemctl reload nginx,让新证书生效。
只要域名解析、443 放行和证书路径这三项不变,后续维护主要是关注到期时间。

网站上 HTTPS 本身不复杂,难的是把域名、端口、证书链和跳转四件事对齐。
按上面的顺序逐项检查,基本能覆盖新手遇到的大部分问题。

分享到:
上一篇
怎么部署SSL证书:Nginx和宝塔两种方式的操作步骤
下一篇
Apache 和 Nginx 选哪个?从并发模型到实际场景的对比
1
系统公告

关于香港云优质服务器IP地址更换的通知

尊敬的客户: 因原IP运营商大幅涨价,为避免成本转嫁至用户,我司决定更换IP服务商。本次更换后,您的续费价格将保持不变,且新IP网络质量与服务标准不受影响。新IP已分配至后台,即刻生效(更换的新IP都是香港原生IPv4)。 涉及 IP 段: 45.192.x.x 旧 IP 停用时间: 2026 年 12 月 1 日
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意