SSL Alternatives to Let's Encrypt
探索Let's Encrypt的免费SSL替代方案 - 从Cloudflare SSL、ZeroSSL到云提供商解决方案
Let’s Encrypt已成为免费SSL证书的标准,但有时您需要替代方案。可能是因为您想减少管理开销,需要更长的证书有效期,或者正在寻找与现有基础设施更好的集成。
为什么考虑Let’s Encrypt替代方案?#
Let’s Encrypt很棒,但有一些限制:
- 有效期短:只有90天,需要频繁更新
- 没有Web界面:必须使用命令行
- 速率限制:证书数量有限制
- 不支持OV/EV:只有域名验证(DV)
[!TIP] 如果您在使用Let’s Encrypt时遇到问题,或者想探索其他选择,这里是今天可用的最佳替代方案。
1. Cloudflare SSL(最佳代理/CDN解决方案)#
如果您将DNS指向Cloudflare,他们将提供免费SSL证书,无需在服务器上手动更新。
Universal SSL#
- 自动为通过Cloudflare代理的每个域名激活
- 不需要在主机上安装任何东西
- 浏览器立即接受的公开信任证书
Origin CA证书#
- Cloudflare颁发直接安装在服务器上的证书
- 有效期长达15年
- 加密从服务器到Cloudflare的数据
- 不用担心像Let’s Encrypt那样每3个月过期
graph LR
A[浏览器] --> B[Cloudflare边缘]
B --> C[源服务器]
B -.->|Universal SSL| A
C -.->|Origin CA| B
style B fill:#f9f,stroke:#333,stroke-width:2px
[!WARNING] Origin CA只被Cloudflare信任,不是公开信任的。如果绕过Cloudflare直接访问服务器,浏览器会显示错误。
何时应该使用Cloudflare SSL?#
- 网站通过Cloudflare代理运行
- 想尽量减少SSL管理工作
- 需要额外的CDN、DDoS保护好处
- 不想在服务器上配置certbot
2. ZeroSSL(直接ACME竞争对手)#
ZeroSSL是Let’s Encrypt的最大竞争对手,也使用ACME协议进行自动化。
优点#
- 免费:90天,通过Web界面最多3个证书
- 无限制:如果配置了ACME自动化
- 直观的Web界面:比命令行更容易使用
- 完整的ACME端口支持:HTTP-01、DNS-01、TLS-ALPN-01
限制#
- 通配符SSL只在付费计划中
- 免费层有更严格的速率限制
# 使用Certbot配置ZeroSSL
certbot certonly --authenticator dns-zero_ssl \
--dns-zero_ssl-credentials ~/.secrets/zero_ssl.ini \
-d example.com -d *.example.combash何时应该使用ZeroSSL?#
- 想要用户友好的Web管理界面
- 需要通配符SSL(付费计划)
- 已经熟悉ACME但想要更好的UI
3. SSL For Free(现在是ZeroSSL的一部分)#
以前是通过Web手动创建Let’s Encrypt证书的工具。现在已集成到ZeroSSL中。
- 仍可用于创建免费90天SSL证书
- 不需要命令行
- 后端系统是ZeroSSL
何时应该使用SSL For Free?#
- 需要快速SSL而不需要ACME配置
- 只需要1-2个简单证书
- 想要简单的手动过程
4. Buypass Go SSL(欧洲ACME替代方案)#
来自挪威的信誉良好的证书颁发机构(CA)。
主要优点#
- 180天有效期:Let’s Encrypt/ZeroSSL的两倍
- ACME兼容:容易从Let’s Encrypt迁移
- 公开信任:所有浏览器都接受
- 免费通配符:通过ACME v2
限制#
- 只支持单域名(没有多域名SAN)
- 需要Buypass账户
- 没有Web界面
# 从Let's Encrypt迁移到Buypass
- 只需更改服务器URL
# From: https://acme-v02.api.letsencrypt.org/directory
# To: https://api.buypass.com/acme/directorybash何时应该使用Buypass?#
- 想要更长的证书有效期(180天)
- 需要免费通配符
- 位于欧洲,想要本地CA
- 已经有ACME基础设施
5. 云提供商的SSL#
如果您在云平台上运行基础设施,它们有集成的免费SSL。
AWS Certificate Manager (ACM)#
- Load Balancer(ALB)和CloudFront免费
- 自动永久更新
- Elastic Load Balancing的公开证书
- 内部应用程序的私有证书
Google Managed SSL#
- App Engine、GKE、Cloud Run免费
- 自动生命周期管理
- 与Google Cloud Load Balancing集成
Azure Key Vault#
- 托管SSL证书
- 与Application Gateway集成
- 自动更新
graph TD
A[云提供商] --> B[AWS ACM]
A --> C[Google Managed SSL]
A --> D[Azure Key Vault]
B --> E[ALB/CloudFront]
C --> F[App Engine/GKE]
D --> G[Application Gateway]
style A fill:#e1f5fe,stroke:#01579b,stroke-width:2px
何时应该使用云提供商SSL?#
- 基础设施在相应的云平台上
- 想要与云服务深度集成
- 需要无需维护的托管服务
- 大规模,许多应用程序
详细比较表#
| 标准 | Let’s Encrypt | Cloudflare SSL | ZeroSSL | Buypass |
|---|---|---|---|---|
| 有效期 | 90天 | 永久 / 15年(Origin) | 90天 | 180天 |
| 运行方式 | 直接服务器安装 | 代理CDN | 服务器或Web UI | 直接服务器安装 |
| Web界面 | 没有(仅CLI) | 非常直观 | 有仪表板 | 没有(仅CLI) |
| 通配符SSL | 有(DNS-01) | 有(免费) | 仅付费计划 | 有(ACME v2) |
| 多域名 | 有(SAN) | 有 | 有(付费) | 没有 |
| ACME支持 | 有 | 没有(Origin CA) | 有 | 有 |
| 公开信任 | 有 | 有(Universal) | 有 | 有 |
| 速率限制 | 50/周 | 无限制 | 3免费 | 不清楚 |
从Let’s Encrypt迁移指南#
迁移到Cloudflare SSL#
- 将DNS指向Cloudflare
# 更新名称服务器
nslookup -type=NS example.combash- 启用Universal SSL
- 转到Cloudflare Dashboard > SSL/TLS
- 选择”Full”或”Full (strict)“模式
- Universal SSL自动激活
- 安装Origin CA(如果需要)
# 从Cloudflare下载Origin CA证书
# 安装在服务器上
sudo cp origin.pem /etc/ssl/certs/
sudo cp origin.key /etc/ssl/private/
# 配置Nginx/Apache使用此证书bash迁移到ZeroSSL#
- 创建ZeroSSL账户
- 在zerossl.com注册
- 获取API密钥
- 配置Certbot
# 安装ZeroSSL插件
sudo apt install python3-certbot-dns-zero-ssl
# 创建凭据文件
echo "dns_zero_ssl_api_token = YOUR_API_TOKEN" > ~/.secrets/zero_ssl.ini
chmod 600 ~/.secrets/zero_ssl.ini
# 请求证书
certbot certonly --authenticator dns-zero_ssl \
--dns-zero_ssl-credentials ~/.secrets/zero_ssl.ini \
-d example.com -d *.example.combash迁移到Buypass#
- 创建Buypass账户
- 在buypass.com注册
- 获取EAB凭据
- 配置ACME客户端
# 使用Certbot
certbot register --account-key ~/.secrets/buypass.key \
--email your@email.com \
--server https://api.buypass.com/acme/directory
# 请求证书
certbot certonly --server https://api.buypass.com/acme/directory \
-d example.combash常见问题#
我应该选择哪个解决方案?#
选择Cloudflare SSL如果:
- 网站通过Cloudflare运行
- 想要”设置后忘记”的解决方案
- 需要额外的CDN/DDoS保护
选择ZeroSSL如果:
- 想要用户友好的Web界面
- 需要通配符SSL(付费计划)
- 已经熟悉ACME
选择Buypass如果:
- 想要180天的有效期
- 需要免费通配符
- 位于欧洲
选择云提供商SSL如果:
- 基础设施在AWS/GCP/Azure上
- 想要托管服务
- 大规模
Origin CA安全吗?#
Origin CA在以下情况下是安全的:
- 所有流量通过Cloudflare代理
- 使用”Full (strict)” SSL模式
- 从不直接访问源服务器
在以下情况下不安全:
- 存在到源的直接流量
- Cloudflare经历停机时间
- 需要公开信任的证书
可以组合多个解决方案吗?#
可以!例如:
- 用于公共流量的Cloudflare Universal SSL
- 用于Cloudflare → 源的Origin CA
- 用于直接访问路由的Let’s Encrypt
结论#
Let’s Encrypt仍然是许多用例的绝佳选择,但它不是唯一的解决方案。根据您的具体需求:
- 最省力:Cloudflare SSL
- 独立,无代理:ZeroSSL或Buypass
- 云原生:AWS ACM、Google Managed SSL
- 快速、手动:SSL For Free
关键要点:选择适合您架构和工作流程的解决方案,不一定是”流行选择”。