Let's Encrypt、ZeroSSL、Google Trust Services 免费证书对比:2026 年 SSL 证书选型与自动续期全攻略


网站没 HTTPS?浏览器直接标"不安全",SEO 排名受影响,用户信任度归零。但证书种类多到眼花缭乱——Let's Encrypt 三个月一换太麻烦?ZeroSSL 真的免费?Google 新出的免费证书靠不靠谱?今天把 2026 年主流的免费 SSL 证书方案拉出来对比,附上完整的自动续期配置,一次设置三年无忧。


一、三大免费证书方案对比

方案一:Let's Encrypt

  • 价格:完全免费
  • 有效期:90 天
  • 通配符:支持(需 DNS 验证)
  • 多域名:支持 SAN
  • 验证方式:HTTP-01、DNS-01
  • 续期:全自动
  • 兼容性:99.9% 设备信任
  • 限制:每周 50 张证书申请限额(个人够用)

方案二:ZeroSSL

  • 价格:免费版 3 张证书,付费版 10/月无限
  • 有效期:90 天
  • 通配符:支持
  • 多域名:支持
  • 验证方式:HTTP-01、DNS-01、Email
  • 续期:支持 ACME 自动续期
  • 兼容性:99% 设备信任
  • 优势:有 Web 管理界面,不用命令行也能申请

方案三:Google Trust Services(GTS)

  • 价格:完全免费
  • 有效期:90 天
  • 通配符:支持
  • 多域名:支持
  • 验证方式:HTTP-01、DNS-01
  • 续期:全自动
  • 兼容性:较新,部分老设备可能不信任
  • 优势:Google 背书,与 GCP 生态集成好

选型建议

  • 个人博客/小站:Let's Encrypt,生态最成熟,文档最多
  • 不想敲命令行:ZeroSSL,网页点几下就搞定
  • 已用 Google Cloud:GTS,集成度最高
  • 企业正式业务:考虑付费证书(DigiCert、Sectigo),有效期一年,支持 OV/EV 验证

二、Certbot 安装与配置(Let's Encrypt)

  1. 安装 Certbot
# Ubuntu/Debian
apt-get update
apt-get install certbot python3-certbot-nginx

# CentOS
yum install certbot python3-certbot-nginx
  1. Nginx 站点配置(申请证书前)

确保域名已解析到服务器,Nginx 配置如下:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    location / {
        return 301 https://$server_name$request_uri;
    }
}
  1. 申请证书
# 单域名
certbot --nginx -d yourdomain.com

# 多域名
certbot --nginx -d yourdomain.com -d www.yourdomain.com

# 通配符(需 DNS 验证,配合插件)
certbot certonly --manual --preferred-challenges dns -d *.yourdomain.com
  1. 自动续期测试
# 测试续期(不真正执行)
certbot renew --dry-run

# 查看续期定时任务
systemctl list-timers | grep certbot

Certbot 会自动创建 systemd timer,每天检查两次是否需要续期。


三、acme.sh 方案(更轻量,支持多厂商)

acme.sh 是纯 Shell 实现的 ACME 客户端,比 Certbot 更轻量,支持 Let's Encrypt、ZeroSSL、Google Trust Services 等多家 CA。

  1. 安装 acme.sh
curl https://get.acme.sh | sh
source ~/.bashrc
  1. 申请 Let's Encrypt 证书
# 注册默认 CA 为 Let's Encrypt
acme.sh --set-default-ca --server letsencrypt

# 申请证书(HTTP 验证)
acme.sh --issue -d yourdomain.com -d www.yourdomain.com --nginx

# 申请通配符(DNS 验证,以 Cloudflare 为例)
export CF_Key="your-cloudflare-api-key"
export CF_Email="your-email@example.com"
acme.sh --issue -d yourdomain.com -d *.yourdomain.com --dns dns_cf
  1. 安装证书到 Nginx
acme.sh --install-cert -d yourdomain.com \
    --key-file /etc/nginx/ssl/yourdomain.com.key \
    --fullchain-file /etc/nginx/ssl/yourdomain.com.crt \
    --reloadcmd "systemctl reload nginx"
  1. 切换到 ZeroSSL
# 注册 ZeroSSL 账号(需邮箱)
acme.sh --register-account -m your-email@example.com --server zerossl

# 后续申请自动走 ZeroSSL
acme.sh --issue -d yourdomain.com --nginx --server zerossl
  1. 切换到 Google Trust Services
acme.sh --set-default-ca --server google
acme.sh --issue -d yourdomain.com --nginx

四、Nginx HTTPS 最佳配置

申请到证书后,Nginx 配置参考:

server {
    listen 443 ssl http2;
    server_name yourdomain.com www.yourdomain.com;

    # 证书路径
    ssl_certificate /etc/nginx/ssl/yourdomain.com.crt;
    ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key;

    # SSL 协议与加密套件
    ssl_protocols TLSv1.2 TLSv1.3;
    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;

    # 会话缓存
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/nginx/ssl/yourdomain.com.crt;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

    # 安全头
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;

    root /var/www/html;
    index index.html index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
}

五、HTTP 强制跳转 HTTPS

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    # Certbot 验证路径
    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    # 其他全部跳转 HTTPS
    location / {
        return 301 https://$server_name$request_uri;
    }
}

六、证书监控与告警

证书过期是网站事故的高频原因,建议设置监控:

  1. 命令行检查证书有效期
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates
  1. 简单监控脚本

/opt/ssl-check.sh

#!/bin/bash

DOMAIN="yourdomain.com"
DAYS_THRESHOLD=7
EXPIRE_DATE=$(echo | openssl s_client -servername $DOMAIN -connect $DOMAIN:443 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
EXPIRE_TIMESTAMP=$(date -d "$EXPIRE_DATE" +%s)
NOW_TIMESTAMP=$(date +%s)
DAYS_LEFT=$(( (EXPIRE_TIMESTAMP - NOW_TIMESTAMP) / 86400 ))

if [ $DAYS_LEFT -lt $DAYS_THRESHOLD ]; then
    echo "警告: $DOMAIN 证书将在 $DAYS_LEFT 天后过期!" | mail -s "SSL证书过期提醒" admin@yourdomain.com
fi

加入 crontab 每天检查:

0 9 * * * /opt/ssl-check.sh

七、常见问题排查

问题一:证书申请失败,提示验证超时

  • 检查域名 DNS 是否解析到正确 IP
  • 检查防火墙是否放行 80 端口
  • 检查 Nginx 配置中 .well-known 路径是否正确

问题二:浏览器提示证书不受信任

  • 检查证书链是否完整(是否包含中间证书)
  • 检查系统时间是否正确
  • 老设备可能不支持 Let's Encrypt 的 ISRG Root X1,需配置兼容链

问题三:续期失败,提示 rate limit

Let's Encrypt 限制:

  • 每周每域名最多 50 张证书
  • 每周每账户最多 300 次新订单

等待一周或换用其他 CA(ZeroSSL/GTS)。

问题四:通配符证书续期需要手动 DNS 验证

解决方案:使用 DNS API 自动验证(Cloudflare、阿里云、腾讯云都支持),配置好后完全自动化。


八、付费证书什么时候需要

场景 免费证书 付费证书
个人博客 完全够用 没必要
电商网站 够用 建议 OV,显示企业名称
金融/银行 不够用 必须 EV,地址栏显示绿色
老旧设备用户多 可能不兼容 兼容性好
有效期要求一年+ 90天需续期 1-2年,省事


九、2026 年新趋势

  • 证书有效期缩短:行业趋势向 90 天甚至 47 天推进,自动化续期成为刚需
  • 后量子加密:Google 和 Cloudflare 已开始测试抗量子计算的加密算法
  • 自动化程度提升:各大 CA 都在优化 ACME 协议,减少人工干预

总结

SSL 证书不再是技术门槛,而是网站标配。2026 年 Let's Encrypt 依然是免费首选,acme.sh 让多 CA 切换变得简单,配合自动续期和过期监控,完全可以做到" set and forget"。建议今天就把网站的证书检查一遍,确保自动续期正常工作,避免半夜被用户投诉"网站打不开"。


京东云2026夏季域名大促:.cn/.com/.top/.online 首年1元,新用户薅羊毛全攻略

Git + Webhook 实现网站自动部署: push 代码即上线,告别 FTP 手动上传

评 论
更换验证码