网站SSL证书部署,HTTPS配置完整步骤
给网站开启 HTTPS,本质是把 SSL 证书部署到 Web 服务器,再让 HTTP 请求自动跳转到 HTTPS。
下面按零基础也能照做的顺序,讲清 Nginx 手动配置和宝塔面板两种路径,以及部署后必须检查的几件事。
动手前的环境确认
不管你用哪种方式部署,先确认这几项:
- 服务器已放行 443 端口:在云厂商安全组和服务器防火墙中都要放行。
- 域名已解析到服务器 IP:用
ping 你的域名能返回正确 IP 即可。 - 已拿到证书文件:通常包含
.crt(或.pem)和.key两个文件,部分证书链还需要ca-bundle或fullchain文件。 - Web 服务已正常运行:Nginx 或 Apache 能通过 HTTP 访问到你的站点。
Nginx 手动部署证书
假设证书文件放在 /etc/nginx/ssl/ 目录,域名为 example.com。
编辑站点配置文件,通常位于 /etc/nginx/conf.d/example.com.conf 或 /etc/nginx/sites-available/example.com:
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /var/www/html;
index index.html;
}
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
保存后先测试配置语法,再平滑重载:
nginx -t
systemctl reload nginx
如果 nginx -t 报错,先按提示修正路径或拼写,不要强行 reload。
宝塔面板一键部署
如果你用的是宝塔面板,操作更直接:
- 进入 网站 → 点击对应站点 设置。
- 切换到 SSL 标签页。
- 选择 Let's Encrypt 免费证书,勾选域名后点击 申请;或者选择 其他证书,把
.crt和.key内容粘贴进去。 - 开启 强制 HTTPS 开关。
- 保存后等待几秒,面板会自动重载 Nginx。
需要注意,Let's Encrypt 证书有效期通常为 90 天,宝塔默认会尝试自动续签,但建议你在到期前手动检查一次续签状态。
部署后必须做的验证
配置完成后,不要只看浏览器地址栏的锁图标,按下面几项逐一确认:
- 浏览器访问
https://你的域名,地址栏显示安全锁,点击可查看证书颁发者和有效期。 - 访问
http://你的域名,应自动跳转到 HTTPS 地址。 - 打开浏览器开发者工具的 Console 面板,确认没有
Mixed Content警告。 - 用在线 SSL 检测工具检查证书链是否完整,避免部分旧设备提示不受信任。
- 如果站点有 API 或 CDN,确认回源协议也已切换为 HTTPS。
常见报错与避坑
证书链不完整:部分浏览器能打开,但微信或旧版安卓提示不安全。
解决方法是把中间证书和域名证书合并成一个文件,Nginx 的 ssl_certificate 指向合并后的文件。
混合内容警告:页面里还有图片、CSS 或 JS 通过 http:// 加载。
用开发者工具定位具体资源,把链接改为 https:// 或使用相对协议 //。
重定向次数过多:通常是 CDN 或反向代理层已经做了 HTTPS 跳转,源站又跳一次导致循环。
检查 CDN 的 SSL 配置和源站 Nginx 配置,只保留一层跳转。
443 端口无法访问:先查安全组,再查服务器防火墙。
CentOS 用 firewall-cmd --list-ports,Ubuntu 用 ufw status,确认 443 已放行。
几个容易忽略的细节
证书文件权限建议设为 600,属主为 root,避免私钥被其他用户读取。
如果服务器上跑了多个站点,
每个站点的 server 块都要单独配置 ssl_certificate 和 ssl_certificate_key,
不要共用同一个 server_name。
开启 HTTPS 后,建议把站点地图、RSS 和数据库里的旧链接一并替换为 https://,否则搜索引擎抓取时可能遇到跳转损耗。
最后,SSL 证书部署不是一次性工作。
免费证书需要定期续签,付费证书也要在到期前更换。
建议设置日历提醒,或者在监控系统中加入证书到期告警,避免因证书过期导致网站无法访问。