← 事例一覧に戻る
2026年3月25日読了 73 views

Cloudflare CDN / WAF のエラー、ブロックページを Pages を使って、オリジンレスで且つ無料で仕立てる

DD
DD
所属: Cloudflare Japan 株式会社|得意分野: Cloudflare のこと

はじめに

Cloudflare の CDN / WAF にはクライアントにエラーや、WAF でブロックされた際に案内するデフォルトページが用意されていますが、英語で表示されます。

サービスの内容によってはお客様にお掛けするご心配を少なくし、迅速にご対応をする目的で日本語に対応したエラーページ(Sorry Page)やブロックページをご用意したいケースは少なくありません。

しかし、このページのためにわざわざウェブサイトを作成するのも、労力やコストに見合わないと感じるのではないでしょうか。

Cloudflare では下記の面倒やコストを開放するサービスが用意されています。

  1. Cloudflare Pages でオリジン(ウェブサーバー)を構築せずに、ウェブページが公開できる
  2. SSL/TLS 証明書は自動的に適用され、自動更新される
  3. 面倒な作業なく、配信中ドメインURL で表示してくれる

やってみる

まずはローカル開発環境で html を作りましょう。

ここで使っている変数 ::RAY_ID:: は、Cloudflare が用意している、ウェブサイトへアクセスした際に発行されるユニークなIDで、エラー時の特定などに使われます。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>dd-lab アクセス制限ページ</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f4;
            text-align: center;
            padding: 50px;
        }

        .container {
            background-color: #fff;
            margin: auto;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0,0,0,0.1);
            max-width: 600px;
        }

        h1 {
            color: #333;
        }

        p {
            color: #666;
        }

        .contact-info {
            margin-top: 20px;
        }
    </style>
</head>

<body>
    <div class="container">
        <h1>アクセスが制限されました</h1>
        <p>申し訳ありませんが、ご利用いただきましたサービスはセキュリティ上の理由により制限されています。</p>
        <p>この判断が誤りであると考えられる場合は、以下の連絡先まで、下記に表示されております「Cloudflare Ray ID」をメモの上ご連絡ください。</p>
        <div class="contact-info">
            <p>サポートチーム: <a href="mailto:[email protected]">[email protected]</a></p>
            <p>電話: 123-456-7890</p>
            <p>Cloudflare Ray ID: ::RAY_ID::</p>

        </div>
    </div>
</body>
</html>

Pages にソースをアップロードする

Screenshot 2024-01-15 at 16.46.50.png

カスタムページの登録

各サイトのメニューにカスタムページという項目がありますので、そこから登録します。
Screenshot 2024-03-25 at 13.11.37.png

カスタムページの URL は Pages で作成したドメインとソースの場所を指定します。
この場合は custom-blockpage-dd.pages.dev という Pages のプロジェクトに custom_block_page.html をアップロードしているので、この URL (.html は指定しなくても動作しました)

Screenshot 2024-01-15 at 18.20.02.png

WAF でのブロックが発生すると

このように表示されます

Screenshot 2024-03-25 at 13.05.36.png

この際、URL は公開しているサイトと同じドメインになり、SSL/TLS 証明書も自動適用された形となります。

免責事項

本記事は Cloudflare Japan のソリューションエンジニアが技術的な知見の共有を目的として個人の立場で執筆したものです。記事の内容は執筆時点の情報および執筆者の主観的な見解を含んでおり、Cloudflare, Inc. の公式な見解・推奨・仕様保証を構成するものではありません。また、記載された構成や手順がすべてのお客様環境で同様に適用できることを保証するものでもありません。製品の正式な仕様や技術サポートについては、Cloudflare 公式ドキュメントまたは担当チームにお問い合わせください。