。我们来一步步配置HTTPS。下面是新手也能理解的流程。
1️⃣ 前提条件
- 域名已经备案 ✅
- 域名解析指向服务器公网 IP ✅
- HTTP 可以访问 ✅
2️⃣ 申请 SSL 证书
有几种方式:
方法 A:使用免费的 Let’s Encrypt(推荐新手)
- 登录服务器
- 安装 Certbot(自动申请证书工具)
Linux 示例(CentOS 或 Ubuntu)
# 安装 snapd(如果系统没自带)
sudo yum install snapd -y # CentOS
sudo snap install core; sudo snap refresh core
# 安装 certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# 申请证书
sudo certbot certonly --standalone -d api.com -d www.api.com
-
系统会自动验证域名是否解析正确(HTTP 80 端口必须开放)。
-
成功后证书文件一般在:
/etc/letsencrypt/live/api.com/fullchain.pem /etc/letsencrypt/live/api.com/privkey.pem
方法 B:购买云厂商 SSL(阿里云/腾讯云)
- 登录 SSL 控制台 → 选择域名 → 申请免费或付费证书 → 下载证书和私钥 → 上传到服务器。
3️⃣ 配置 Nginx 支持 HTTPS
假设你已经有 HTTP 配置:
server {
listen 80;
server_name api.com www.api.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
修改为同时支持 HTTPS:
# HTTP 自动跳转到 HTTPS
server {
listen 80;
server_name api.com www.api.com;
return 301 https://$host$request_uri;
}
# HTTPS 配置
server {
listen 443 ssl;
server_name api.com www.api.com;
ssl_certificate /etc/letsencrypt/live/api.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/api.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
- 保存后 重启 Nginx:
sudo nginx -t # 检查配置是否正确
sudo systemctl restart nginx
4️⃣ 测试 HTTPS
- 打开浏览器访问:
https://api.com
- 如果显示安全锁,说明配置成功 ✅
💡 小贴士
- Let’s Encrypt 证书有效期 90 天,需要自动续期:
sudo certbot renew --dry-run
- 如果你的服务器有防火墙,记得放行 80/443 端口。