云服务器HTTPS配置教程:从HTTP到小锁,照着做就行
你刚把网站扔上云服务器,浏览器却提示“不安全”;做小程序、支付回调、微信网页授权,对方还非要HTTPS。别慌,这不是让你重买服务器,而是缺一张SSL证书和几行配置。本文面向国内站长、开发者和中小企业运维新手,用Nginx+免费证书走一遍完整流程,国内机和免备案VPS都适用。
核心操作:4步把HTTPS配好
第1步:域名解析和安全组先搞定
把域名A记录指到服务器公网IP,www也加上。国内云服务器注意:域名要先备案,否则80/443容易被拦。然后去安全组/防火墙放行80和443。Ubuntu可执行:
sudo ufw allow 'Nginx Full'
CentOS用firewalld放行80/tcp、443/tcp。别问我是怎么知道的,很多人配置半天,最后发现是安全组没开443。
第2步:装Nginx和证书工具
Ubuntu/Debian:
sudo apt update
sudo apt install nginx certbot python3-certbot-nginx -y
CentOS:
sudo dnf install nginx certbot python3-certbot-nginx -y
装完确认Nginx正常:sudo systemctl status nginx。
第3步:申请证书并配置HTTPS
最简单是用Let’s Encrypt一键:
sudo certbot --nginx -d example.com -d www.example.com
按提示填邮箱、同意协议,选择把HTTP重定向到HTTPS。Certbot会自动改Nginx配置。
如果你用云厂商免费证书,就下载Nginx格式,手动配:
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
手动配最容易错的是证书路径和server_name,证书用fullchain.pem,别只拿cert.pem。用宝塔面板更省事:网站设置→SSL→Let’s Encrypt一键申请→开启强制HTTPS。
第4步:验证和自动续期
sudo nginx -t
sudo systemctl reload nginx
curl -I https://example.com
浏览器看小锁,F12看有没有混合内容。再测续期:
sudo certbot renew --dry-run
Let’s Encrypt证书90天到期,装好certbot.timer一般会自动续,别把它关了。
避坑提醒:新手常犯的3个错误
- 只开443不开80:证书续期和HTTP跳转都可能失败,两个都放行。
- 证书链不完整或域名不匹配:手机正常、电脑报错很常见,认准
fullchain.pem,私钥权限设600。 - 页面里还有http://资源:图片、JS、字体没改HTTPS,小锁会变灰,上线前全站搜一遍
http://。
解决方案推荐
如果你还没买服务器,或者国内备案流程嫌慢,可以看沐雨云服务器:https://www.myyvps.com 。它家提供高防云服务器,单机50-200G DDoS/CC防御;香港/美国/日本免备案VPS,BGP/CN2优质线路、纯SSD固态硬盘。2核2G轻量云12.8元/月起,支持支付宝/微信支付,适合个人博客、电商网站、游戏服务器、外贸独立站。配HTTPS时选带独立IP的机型,少折腾。
结尾总结
- 域名解析到公网IP,安全组放行80/443;
- 国内服务器先备案,免备案选香港/日本/美国VPS;
- Certbot一键申请,或手动配
fullchain.pem; - 强制HTTP跳HTTPS,检查混合内容;
- 跑一次
certbot renew --dry-run,确认自动续期。



这一切,似未曾拥有