すべてのプロダクト
Search
ドキュメントセンター

CDN:CORS を構成する

最終更新日:Jun 24, 2025

コンテンツ配信のために Alibaba Cloud CDN に Web サイトを追加した後、カスタム HTTP 応答ヘッダーを構成してクロスオリジンアクセスを有効にすることができます。

CORS とは

クロスオリジンリソース共有(CORS)は、Web ページが異なるオリジンサーバーからリソースにアクセスしてロードできるようにするために HTML5 によって提供される標準のクロスオリジンソリューションです。 これにより、データ転送のセキュリティが確保されます。 詳細については、「Cross-Origin Resource Sharing (CORS)」をご参照ください。

メリット

セキュリティ上の理由から、ブラウザは同一オリジンポリシーを使用します。 これにより、Web ページが異なるドメインまたはサブドメインから、あるいは異なるプロトコルまたはポートを介してリソースにアクセスしてロードするためのリクエストを開始することが制限されます。 たとえば、example.comexample.org 上のリソースにアクセスできません。 CORS を構成すると、CDN サーバーで応答ヘッダーを指定できます。 CDN リソースへのアクセス要求が許可されたルールに準拠したヘッダーを保持している場合、クロスオリジンリソースをロードしてアクセスできます。

CORS のしくみ

CORS 無効

  1. クライアントは http://example.com/index.html のリクエストを example.com に送信します。

  2. example.comindex.html ファイルをクライアントに返します。 ファイルの URL には、別のオリジンサーバーのリソースへの URL が含まれています: http://example.org/image_01.png

  3. クライアントは http://example.org/image_01.png のリクエストを example.org に送信します。

  4. example.org は、Access-Control-Allow-Origin: * などのクロスオリジンヘッダーを返します。

  5. クライアントは応答を受信し、ブラウザはヘッダー値をチェックします。 ヘッダー値はアスタリスク (*) で、すべてのオリジンからのクロスオリジンリクエストが許可されていることを示します。 次に、ブラウザは応答を表示します。

CORS 有効

  1. クライアントは http://example.com/index.html のリクエストを CDN に送信します。

  2. CDNindex.html ファイルをクライアントに返します。 ファイルの URL には、別のオリジンサーバーのリソースへの URL が含まれています: http://example.org/image_01.png

  3. クライアントは http://example.org/image_01.png のリクエストを CDN に送信します。 リクエストには Origin:http://example.com ヘッダーが含まれています。

  4. CDN はリクエストを受信し、リクエスト内の Origin ヘッダーの値を、構成された Access-Control-Allow-Origin の値と比較します。 Access-Control-Allow-Origin には、1 つ以上の値、またはワイルドカードドメイン名を指定できます。 Access-Control-Allow-Origin は、上記のヘッダー値が一致する場合にのみクライアントに返されます。

  5. CDN は、Access-Control-Allow-Origin:http://example.com などのクロスオリジンヘッダーをクライアントに返します。

  6. クライアントは応答を受信し、ブラウザはヘッダー値をチェックします。 ヘッダー値は http://example.com で、http://example.com からのクロスオリジンリクエストが許可されていることを示します。 次に、ブラウザは応答を表示します。

使用上の注意

  • オリジンサーバーが Object Storage Service (OSS) バケットであり、OSS と CDN コンソールの両方で CORS が構成されている場合、CDN コンソールの CORS 設定が使用されます。 OSS コンソールでの CORS 設定の詳細については、「CORS」をご参照ください。

  • オリジンサーバーがオンプレミスサーバーまたは Elastic Compute Service (ECS) インスタンスである場合、動的コンテンツと静的コンテンツを分離することをお勧めします。 こうすることで、CDN によって静的コンテンツの配信が高速化されます。 CDN コンソールの CORS 設定は、静的リソースに対してのみ有効です。

CORS を有効にする

  1. Alibaba Cloud CDN コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、ドメイン名 をクリックします。

  3. ドメイン名 ページで、管理するドメイン名を見つけ、管理 列の アクション をクリックします。

  4. ドメイン名の左側のナビゲーションツリーで、キャッシュ設定 をクリックします。

  5. [発信リクエストヘッダーの変更] タブをクリックします。

  6. HTTP 応答ヘッダーを構成するには、追加 をクリックします。

  7. クロスオリジンリクエストで許可されるオリジンを指定するパラメータを構成し、OK をクリックします。

    自定义

    次の表にパラメータを示します。

    パラメータ

    説明

    実行内容

    CORS 機能を使用するには、このパラメータを 追加 に設定する必要があります。

    追加

    応答ヘッダー

    CORS 機能を使用するには、このパラメータを Access-Control-Allow-Origin に設定する必要があります。

    Access-Control-Allow-Origin

    応答ヘッダー値

    CORS 無効: ワイルドカードまたは単一の指定オリジンのみ構成できます。

    • ワイルドカード (*): ワイルドカードが構成されており、すべてのリソースにアクセスできることを示します。

    • 単一の指定オリジン: 単一のオリジン (ドメイン名) が指定されており、指定されたオリジンからのみリソースにアクセスできることを示します。

    CORS 有効: ワイルドカード、単一の指定オリジン、複数の指定オリジン、およびワイルドカードドメイン名を構成できます。

    • ワイルドカード (*): ワイルドカードが構成されており、すべてのリソースにアクセスできることを示します。

    • 単一の指定オリジン: 単一のオリジン (ドメイン名) が指定されており、指定されたオリジンからのみリソースにアクセスできることを示します。

    • 複数の指定オリジン: 複数のオリジン (ドメイン名) が指定され、コンマ (,) で区切られています。指定された範囲内のオリジンからリソースにアクセスできることを示します。

    • ワイルドカードドメイン名: ワイルドカードドメイン名が構成されており、指定されたワイルドカードドメイン名に一致するすべてのオリジンからリソースにアクセスできることを示します。

    • *

    • http://www.aliyun.com

    • https://aliyun.com,http://www.aliyun.com

    • http://*.aliyun.com

    重複の許可

    • [はい]: 重複ヘッダーが許可されます。 オリジンサーバーから返されたヘッダーと、応答に追加されたヘッダーがクライアントに返されます。

    • [いいえ]: 重複ヘッダーは許可されません。 オリジンサーバーから返されたヘッダーは、応答に追加されたヘッダーによって上書きされます。

    重要

    [重複を許可] 設定と [CORS] 設定は相互に排他的です。 [重複を許可][はい] に設定すると、[CORS] の設定は無効になります。

    いいえ

    CORS

    • CORS パラメータは、実行内容追加 に、応答ヘッダーAccess-Control-Allow-Origin に設定した場合にのみ構成できます。

    • CORS の有効な値: しない および 有効 。 デフォルト値: しない

      • しない : CDN POP は、ユーザーリクエストの Origin ヘッダーを確認しません。 この場合、POP は構成された Access-Control-Allow-Origin の値を返します。

      • 有効 : CDN POP は、ユーザーリクエストの Origin ヘッダーを確認し、次のルールに基づいて Access-Control-Allow-Origin ヘッダーの値を指定します。

        • ワイルドカードパターンマッチ: Access-Control-Allow-Origin ヘッダーをアスタリスク (*) に設定した場合、ユーザーリクエストに Origin ヘッダーが含まれているかどうかに関係なく、Access-Control-Allow-Origin:* が返されます。または Origin ヘッダーに指定された値。

        • 完全一致: Access-Control-Allow-Origin ヘッダーに 1 つ以上の値を指定できます。 複数の値はコンマ (,) で区切ります。

          • ユーザーリクエストの Origin ヘッダーの値が Access-Control-Allow-Origin ヘッダーの値と一致する場合、Access-Control-Allow-Origin ヘッダーの一致する値が返されます。

          • ユーザーリクエストの Origin ヘッダーの値が Access-Control-Allow-Origin ヘッダーの値と一致しない場合、Access-Control-Allow-Origin ヘッダーは返されません。

        • ワイルドカードドメイン名の一致: Access-Control-Allow-Origin ヘッダーをワイルドカードドメイン名に設定した場合、Origin ヘッダーの値はワイルドカードドメイン名と照合されます。

      • [CORS] パラメータを 有効 に設定し、応答ヘッダー値 パラメータに指定する値にハイフン (-) が含まれている場合は、ハイフン (-) を %- にエスケープする必要があります。 例:

        • 元の応答ヘッダー値: http://doc.aliyun-example.com

        • エスケープされた応答ヘッダー値: http://doc.aliyun%-example.com

    [有効]

  8. クロスオリジンリクエストで許可されるオリジンを指定するパラメータを構成し、OK をクリックします。

    请求方法

    次の表にパラメータを示します。

    パラメータ

    説明

    実行内容

    このパラメータは 追加 に設定する必要があります。

    追加

    応答ヘッダー

    このパラメータは Access-Control-Allow-Methods に設定する必要があります。

    Access-Control-Allow-Methods

    応答ヘッダー値

    有効な値: GETPOST 、および PUTGETPOST 、および PUT を同時に追加する場合は、コンマ (,) で区切ります。

    GET

    重複の許可

    • [はい]: 重複ヘッダーが許可されます。 オリジンサーバーから返されたヘッダーと、応答に追加されたヘッダーがクライアントに返されます。

    • [いいえ]: 重複ヘッダーは許可されません。 オリジンサーバーから返されたヘッダーは、応答に追加されたヘッダーによって上書きされます。

    いいえ

例 1

Access-Control-Allow-Origin ヘッダーを、コンマ (,) で区切られた 1 つ以上の値に設定したとします。

  • ユーザーリクエストの Origin ヘッダーの値が Access-Control-Allow-Origin ヘッダーの値と一致する場合、Access-Control-Allow-Origin ヘッダーの一致する値が返されます。

  • ユーザーリクエストの Origin ヘッダーの値が Access-Control-Allow-Origin ヘッダーの値と一致しない場合、Access-Control-Allow-Origin ヘッダーは返されません。

CDN コンソールで、応答ヘッダーは Access-Control-Allow-Origin:http://example.com,https://aliyundoc.com に設定されています。

  • ユーザーリクエストの Origin ヘッダーの値が http://example.com の場合、CDN POP は Access-Control-Allow-Origin:http://example.com を返します。

  • ユーザーリクエストの Origin ヘッダーの値が http://aliyundoc.com の場合、リクエストは HTTP を使用していますが、この場合、CDN POP は HTTPS リクエストにのみ応答するため、CDN POP は Access-Control-Allow-Origin を返しません。

  • ユーザーリクエストの Origin ヘッダーの値が https://aliyundoc.com の場合、CDN POP は Access-Control-Allow-Origin:https://aliyundoc.com を返します。

  • ユーザーリクエストの Origin ヘッダーの値が http://aliyun.com の場合、ドメイン名が一致しないため、CDN POP は Access-Control-Allow-Origin を返しません。

例 2

Access-Control-Allow-Origin パラメータをワイルドカードドメイン名に設定した場合、CDN POP は、ユーザーリクエストの Origin ヘッダーの値がワイルドカードドメイン名と一致するかどうかを確認します。

CDN コンソールで、応答ヘッダーは Access-Control-Allow-Origin:http://*.aliyundoc.com に設定されています。

  • ユーザーリクエストの Origin ヘッダーの値が http://demo.aliyundoc.com の場合、CDN POP は Access-Control-Allow-Origin:http://demo.aliyundoc.com を返します。

  • ユーザーリクエストの Origin ヘッダーの値が http://demo.example.com の場合、ドメイン名が一致しないため、CDN POP は Access-Control-Allow-Origin を返しません。

  • ユーザーリクエストの Origin ヘッダーの値が https://demo.aliyundoc.com の場合、リクエストは HTTPS を使用していますが、この場合、CDN POP は HTTP リクエストにのみ応答するため、CDN POP は Access-Control-Allow-Origin を返しません。

よくある質問

詳細については、「応答ヘッダーを構成しても、CORS の問題が報告され、Access-Control-Allow-Origin 応答ヘッダーが返されないのはなぜですか。」をご参照ください。