
错误原因
查看 CF 官方文档 可以得知 521 错误的两个最常见原因:
源站 Web 服务器应用程序离线
Cloudflare 请求被阻止
如果服务器正常运行,且防火墙没有设置特殊规则,最常见的原因是因为在服务器上没有安装 Origin CA 证书。
解决方案
创建 Origin CA 证书
登录 Cloudflare 仪表板。
选择你的域名
转到 SSL/TLS > 源服务器

单击“创建证书”
选择通过 Cloudflare 生成私钥和 CSR
输入域名(如 *.你的网站.com,你的网站.com)。域名根和第一级通配符主机名已默认包含
选择到期日期。

单击“下一步”
选择密钥格式:
使用 OpenSSL 的服务器(如 Apache 和 NGINX)通常希望使用 PEM 文件(Base64 编码的 ASCII),但也可以使用二进制 DER 文件
使用 Windows 和 Apache Tomcat 的服务器需要 PKCS#7(.p7b 文件)
将签名的 Origin 证书和私钥分别复制到不同的文件中。
:::caution 退出页面后将无法再次查看私钥,所以务必保存到本地,否则只能重新创建 :::
单击“确定”。
在服务器上安装 Origin CA 证书(以 Nginx 为例)
将 Origin CA 证书(在步骤 1 中创建)上传到源站 Web 服务器上。(使用 SFTP 等) 接下来的操作因服务器而异,以下以 Nginx 为例
打开 Nginx 配置文件(通常位于 /etc/nginx/)
在 Server 块中添加如下(将路径替换为你自己的)
`listen 443;
ssl on;
ssl_certificate /etc/ssl/your_domain_name.pem;
ssl_certificate_key /etc/ssl/your_domain_name.key;`
例如:
`server { listen 443
ssl on;
ssl_certificate /etc/ssl/your_domain_name.pem; (or bundle.crt)
ssl_certificate_key /etc/ssl/your_domain_name.key;
server_name your.domain.com;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
location / {
root /home/www/public_html/your.domain.com/public/;
index index.html;
}
}`
- 重启 Nginx
sudo /etc/init.d/nginx restart
其它服务器配置参考
评论
No comments yet