【技术手册】Cloudflare SSL Handshake Failed 闭坑指南
## 错误诊断:为什么 525 总是挥之不去?
当你在浏览器看到 `525: SSL Handshake Failed` 时,不要盲目去改 Cloudflare 的 SSL/TLS 模式。90% 的概率是因为你的 Origin Server(源站,即 OpenResty 容器)没有正确响应证书握手。
## 物理解决:OpenResty 的 SNI 对齐
在 1Panel 环境下,OpenResty 容器内部的证书路径可能与宿主机不同。我们需要确保虚拟主机的 `.conf` 文件里物理指向了正确的 `fullchain.pem`。
### OpenResty 站点配置参考
“`nginx
server {
listen 443 ssl http2;
server_name blog.cshaizhihao.com;
# 证书路径物理锁定
ssl_certificate /www/sites/blog.cshaizhihao.com/ssl/fullchain.pem;
ssl_certificate_key /www/sites/blog.cshaizhihao.com/ssl/privkey.pem;
# SSL 协议加固
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://127.0.0.1:5888;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
“`
## 自动化修复流程
一旦证书到期,利用 `acme.sh` 的自动 hook 脚本重启 OpenResty:
“`bash
docker exec 1Panel-openresty-ygVL nginx -s reload
“`
只有物理层面的绝对掌控,才能终结 SSL 报错的焦虑。