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

CDN:タイプ A 署名

最終更新日:Feb 05, 2026

URL 署名は、ご利用のサイト上のリソースが他のサイトによる不正なダウンロードや使用から保護されます。このトピックでは、Alibaba Cloud CDN におけるタイプ A 署名の仕組みを説明し、その例を示します。

しくみ

  • タイプ A 署名付き URL の構造

    http://DomainName/Filename?auth_key={<timestamp>-rand-uid-<md5hash>}
    説明

    {} 内の内容は、標準的な URL に追加される暗号化された情報です。

  • フィールドの説明

    フィールド

    説明

    DomainName

    ご利用の CDN サイトのドメイン名です。

    Filename

    オリジンフェッチの実際の URL です。Filename はスラッシュ (/) で始まる必要があります。

    auth_key

    リクエストの認証情報です。タイムスタンプ、rand、uid、および md5hash で構成されます。

    timestamp

    署名サーバーが署名付き URL を生成した時刻です。この値と 有効期間 によって、署名付き URL の有効期限が決定されます。この時刻は 10 桁の UNIX タイムスタンプで、1970 年 1 月 1 日 00:00:00 からの経過秒数を表します。

    説明

    通常、署名付き URL の有効期間は CDN に設定された有効期間となります。署名付き URL を生成する際に有効期間を延長する場合、`timestamp` = UNIX タイムスタンプ + 延長期間 となります。署名付き URL の実際の有効期間は `timestamp` + CDN に設定された期間 です。

    rand

    乱数です。ハイフン (-) を含まないユニバーサル一意識別子 (UUID) を使用してください。例:477b3bbc253f467b8def6711128c7bec

    uid

    ユーザー ID です。このフィールドは使用されません。0 に設定してください。

    md5hash

    MD5 アルゴリズムを使用して計算された 32 文字の文字列です。数字と小文字で構成されます。

    計算方法:

    sstring = "URI-Timestamp-rand-uid-PrivateKey" (URI はリクエストされたオブジェクトの相対パス(例:/Filename)であり、パラメーターは含まれません。)
    md5hash = md5sum(sstring)
  • 認証ロジック

    CDN サーバーがリソースへのアクセスリクエストを受信すると、timestamp + 有効期間 が現在時刻よりも前かどうかを確認します。

    • timestamp + 有効期間 が現在時刻よりも前の場合、サーバーは URL が期限切れであると判断し、HTTP 403 エラーを返します。

    • timestamp + 有効期間 が現在時刻よりも後の場合、サーバーは sstring フォーマット(テーブル内の sstring フォーマットを参照)で文字列を構築します。その後、MD5 アルゴリズムを使用して md5hash 値を計算し、計算された md5hash 値とユーザーのリクエストに含まれる md5hash 値を比較します。

      • 値が一致する場合、認証は成功し、リソースが返されます。

        説明

        認証が成功すると、署名パラメーターは URL から削除され、元の URL に復元されます。これによりキャッシュヒット率が向上し、back-to-origin トラフィックが削減されます。例:

        • 署名パラメーター付きの URL:http://DomainName/Filename?auth_key={<timestamp>-rand-uid-<md5hash>}

        • 認証成功後:

          • キャッシュキーの生成に使用される URL フォーマット:http://DomainName/FileName

          • 実際のオリジンフェッチに使用される URL フォーマット:http://DomainName/FileName

      • 値が一致しない場合、認証は失敗し、HTTP 403 エラーが返されます。

署名付き URL の例

以下の例では、タイプ A 署名の実装方法を示します。

  • 例の条件

    • オリジンリクエストオブジェクト:

      http://domain.example.com/video/standard/test.mp4
      説明

      リクエスト URL に中国語文字やその他の非 ASCII 文字が含まれる場合は、まず URL を エンコード する必要があります。その後、エンコードされた URL を使用してハッシュ用の文字列を構築します。例:

      • 元の URL:https://example.com/image/AlibabaCloud.jpg

      • エンコードされた URL:https://example.com/image/%E9%98%BF%E9%87%8C%E4%BA%91.jpg

    • キーは次のように設定されています:aliyuncdnexp1234

    • 署名サーバーが署名付き URL を生成した時刻は、2015 年 10 月 10 日 08:00:00 (UTC + 08:00) で、10 進数整数値は 1444435200 です。

  • 連結プロセス

    1. CDN サーバーは、md5hash の計算に使用するハッシュ対象文字列を構築します。

      /video/standard/test.mp4-1444435200-0-0-aliyuncdnexp1234
    2. この文字列に基づき、CDN サーバーは md5hash を計算します。

      md5hash = md5sum("/video/standard/test.mp4-1444435200-0-0-aliyuncdnexp1234") = 23bf85053008f5c0e791667a313e28ce
    3. 署名付き URL を生成します。

      http://domain.example.com/video/standard/test.mp4?auth_key=1444435200-0-0-23bf85053008f5c0e791667a313e28ce

クライアントが署名付き URL を使用してリクエストを行うと、CDN サーバーは md5hash 値を計算します。計算された値がリクエストに含まれる md5hash 値(23bf85053008f5c0e791667a313e28ce)と一致し、かつ署名付き URL の有効期限が切れていない場合、認証は成功します。それ以外の場合は、認証は失敗します。