HTTPS与SSL证书配置完整指南:Let’s Encrypt免费证书申请与自动续期
如果你的网站还在用 HTTP,Chrome 浏览器会在地址栏显示"不安全"警告,用户看到这个标志后往往直接关闭页面。更重要的是,Google 从 2014 年起就将 HTTPS 作为搜索排名的加分因素,没有 HTTPS 的网站在 SEO 上处于天然劣势。本文手把手带你完成 SSL 证书申请和 HTTPS 配置。
一、SSL/TLS 和 HTTPS 是什么关系?
很多人混用这几个词,其实:
- SSL(Secure Sockets Layer)/ TLS(Transport Layer Security):加密协议,TLS 是 SSL 的更新版本,但习惯上仍称 SSL 证书
- HTTPS(HTTP Secure):在 HTTP 协议上加了 SSL/TLS 加密层,所有传输数据被加密
- SSL 证书:由受信任的证书颁发机构(CA)签发,证明"这个域名确实属于声称的服务器",是实现 HTTPS 的必要凭证
简单说:SSL 证书 + Nginx/Apache 配置 = HTTPS 访问。
二、SSL 证书类型选择
| 证书类型 | 验证级别 | 价格 | 适合场景 |
|---|---|---|---|
| DV(域名验证) | 仅验证域名控制权 | 免费(Let's Encrypt) | 个人站、博客、一般商业网站 |
| OV(组织验证) | 验证组织真实性 | 数百~数千元/年 | 企业官网、需要展示公司信息 |
| EV(扩展验证) | 最严格的企业审核 | 数千~万元/年 | 银行、金融机构(绿色地址栏) |
| 通配符证书 | 覆盖所有子域名(*.domain.com) | 免费(Let's Encrypt 支持) | 有多个子域名的网站 |
对于绝大多数出海建站场景,Let's Encrypt 免费 DV 证书完全足够,浏览器显示效果与付费证书完全相同(都是绿色锁图标),且完全免费。
三、前置条件检查
在申请证书前,确认:
- 域名已解析到服务器 IP,并且 DNS 已生效(用
ping yourdomain.com确认) - 服务器 80 和 443 端口已开放(
sudo ufw allow 80 && sudo ufw allow 443) - Nginx 或 Apache 已安装并运行
四、方法一:Certbot + Nginx(推荐,最自动化)
Step 1:安装 Certbot
sudo apt update
sudo apt install certbot python3-certbot-nginx -yStep 2:申请证书并自动配置 Nginx
# 单域名
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
# 申请通配符证书(需要 DNS 验证方式)
sudo certbot certonly --manual --preferred-challenges dns -d "*.yourdomain.com" -d yourdomain.comCertbot 会提示你:
- 输入联系邮箱(用于证书到期提醒)
- 同意服务条款
- 是否将 HTTP 自动重定向到 HTTPS(选 Yes)
完成后,Certbot 会自动修改 Nginx 配置,添加 SSL 配置和 HTTP 到 HTTPS 的重定向规则。
Step 3:验证 HTTPS 是否生效
# 检查 Nginx 配置语法
sudo nginx -t
# 重载 Nginx
sudo systemctl reload nginx
# 用 curl 验证 HTTPS
curl -I https://yourdomain.com看到 HTTP/2 200 或 HTTP/1.1 200 表示 HTTPS 配置成功。
Step 4:测试自动续期
# Let's Encrypt 证书有效期 90 天,Certbot 会自动续期
# 模拟续期测试(不实际续期)
sudo certbot renew --dry-run
# 查看 Certbot 定时任务
sudo systemctl status certbot.timerCertbot 安装时会自动创建 systemd 定时器,每天检查两次证书是否需要续期(距到期 30 天内自动续期),无需手动干预。
五、方法二:Certbot + Apache
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com与 Nginx 流程基本相同,Certbot 会自动处理 Apache 的配置修改。
六、方法三:acme.sh(适合高级用户)
acme.sh 是一个纯 Shell 脚本的 ACME 客户端,比 Certbot 更轻量,支持更多 DNS 提供商的自动验证:
# 安装 acme.sh
curl https://get.acme.sh | sh -s email=your@email.com
# 申请证书(使用 Nginx 验证方式)
~/.acme.sh/acme.sh --issue -d yourdomain.com --nginx
# 安装证书到 Nginx
~/.acme.sh/acme.sh --install-cert -d yourdomain.com \
--key-file /etc/nginx/ssl/yourdomain.com.key \
--fullchain-file /etc/nginx/ssl/yourdomain.com.cer \
--reloadcmd "sudo systemctl reload nginx"七、配置好 HTTPS 后的 Nginx 配置示例
# HTTP 强制跳转 HTTPS
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
# HTTPS 主配置
server {
listen 443 ssl http2;
server_name yourdomain.com www.yourdomain.com;
# SSL 证书路径(Certbot 自动填写)
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
# 安全加固配置
ssl_protocols TLSv1.2 TLSv1.3; # 禁用老旧的 TLS 1.0/1.1
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# HSTS(告诉浏览器始终用 HTTPS 访问)
add_header Strict-Transport-Security "max-age=63072000" always;
# 其他安全头
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}八、HTTPS 配置后的常见问题
问题一:Mixed Content(混合内容)警告
网站切换 HTTPS 后,如果页面中仍有 http:// 开头的图片、CSS、JS 链接,浏览器会报混合内容警告,部分资源会被拦截。
解决方法:
- WordPress 用户:安装 Really Simple SSL 插件,一键替换数据库中的 http 链接为 https
- 手动修复:在 MySQL 中执行批量替换
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com');
问题二:证书续期失败
常见原因:
- 80 端口被防火墙封闭(Certbot 的 HTTP-01 验证需要 80 端口)
- 域名 DNS 发生变更,不再指向该服务器
- 服务器更换后 Certbot 配置未迁移
# 手动触发续期(排查问题)
sudo certbot renew --force-renewal问题三:SSL Labs 评分不是 A+
使用 Qualys SSL Labs(https://www.ssllabs.com/ssltest/)测试你的 HTTPS 配置。按照本文的 Nginx 配置,通常可以达到 A 或 A+ 评级。最常见的扣分点是没有启用 HSTS 或支持了过时的 TLS 版本。
总结
配置 HTTPS 是每个网站上线前的必做事项,不是可选项。使用 Let's Encrypt + Certbot,整个流程只需 10~15 分钟,完全免费,且自动续期无需手动管理。
- 🔒 用户信任:有绿色锁图标,用户安心填写信息和支付
- 📈 SEO 加分:Google 将 HTTPS 作为排名因素之一
- 💳 支付合规:Stripe、PayPal 等支付接口要求 HTTPS
如果你正在使用后浪云服务器,按照本文步骤即可在服务器上完成 SSL 证书配置,有任何问题欢迎通过工单联系技术支持。
