
エラーの原因
CFの公式ドキュメントを確認すると、521エラーの最も一般的な2つの原因がわかります:
オリジンWebサーバーのアプリケーションがオフライン
Cloudflareのリクエストがブロックされている
サーバーが正常に動作しており、ファイアウォールに特別なルールが設定されていない場合、最も一般的な原因はサーバーに Origin CA 証明書 がインストールされていないことです。
解決策
Origin CA 証明書の作成
Cloudflare ダッシュボードにログインします。
ドメインを選択します。
SSL/TLS > オリジン サーバー に移動します。

「証明書を作成」をクリックします。
CloudflareでプライベートキーとCSRを生成するを選択します。
ドメイン名(例:*.yourdomain.com, yourdomain.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