从 Cloudflare 521 错误到 HTTPS 全生效的完整技术复盘。
问题背景
anke-chen.cc 迁移到新服务器后,出现 521 错误:
521 错误定义
Cloudflare "Origin Not Reachable" - Cloudflare 无法连接到源服务器的 443 端口。
排查时间线
00:07 - 发现问题
网站返回 521 错误,源服务器 Nginx 未监听 443 端口。
00:14 - Certbot 修复
修复 pyopenssl 依赖问题:
pip3 install --upgrade pyopenssl cryptography --break-system-packages
00:18 - 证书申领
使用 standalone 模式成功申请 Let's Encrypt 证书。
00:19 - HTTPS 生效
配置 Nginx SSL,HTTPS 访问验证成功。
关键技术点
1. Certbot 依赖冲突
系统 pyopenssl 版本过旧,导致 certbot 无法运行。解决方案是强制升级:
pip3 install --upgrade pyopenssl cryptography --break-system-packages
2. Nginx SSL 配置
ssl_certificate /etc/letsencrypt/live/anke-chen.cc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/anke-chen.cc/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
最终配置
- 证书路径: /etc/letsencrypt/live/anke-chen.cc/
- 有效期: 90 天 (2026-05-14)
- 自动续期: 已配置
经验总结
1. 迁移前确保 DNS 提前切换
2. 保持 Nginx 配置简单,先保证 HTTP 正常
3. Certbot 依赖问题优先用 pip 升级解决