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

CDN:Type F 署名

最終更新日:May 12, 2026

URL 署名は、オリジンサーバーのリソースへの不正アクセスを防止します。 Alibaba Cloud CDN は、4 種類の URL 署名方式を提供しています。このトピックでは、Type F の仕組みと使用例について説明します。

説明

Type F は最もシンプルな URL 署名方式です。プライベートキーを使用した MD5 ハッシュ化と、デフォルトのパラメーター名 sign および time を使用します。ほとんどの基本的な認証シナリオに適しています。

重要

署名付き URL に中国語文字を含めることはできません。

URL 署名は、クエリパラメーター (?) を既に含む URL をサポートしていません。 これは、署名付き URL 自体がクエリパラメーターを追加するためです。

仕組み

  • 署名付き URL の形式

    署名付き URL は、以下の形式です。

    http://DomainName/FileName?{sign=<md5hash>&time=<timestamp>}
    説明

    {} 内のコンテンツは、標準 URL に追加される認証パラメーターを表します。

    signtime のパラメーター名はデフォルトです。 URL 署名の設定コンソールで、[署名パラメーター]と[タイムスタンプパラメーター]をカスタマイズできます。

  • パラメーター

    説明

    DomainName

    CDN または によって高速化されるドメイン名。

    PrivateKey

    大文字、小文字、数字で構成される 16~32 文字のカスタム暗号化キー。

    FileName

    オリジンリクエストで取得するリソースへのパス。 パスはスラッシュ (/) で始まる必要があります。

    timestamp

    署名サーバーが署名付き URL を生成した時刻。この値は、有効期間と組み合わせて、署名付き URL の有効期限を決定します。時刻は UNIX タイムスタンプ (1970年1月1日00:00:00 UTC からの経過秒数) であり、タイムゾーンに依存しません。URL 署名の設定コンソールで、タイムスタンプ形式を 10 進数 (UNIX タイムスタンプ) または 16 進数 (UNIX タイムスタンプ) に設定できます。

    説明

    URL 署名の設定 コンソールで TTL を設定します。設定が完了すると、署名付き URL の有効期限は timestamp + CDN に設定された有効期間となります。

    md5hash

    MD5 アルゴリズムによって生成される 32 文字の文字列。数字 0~9 と小文字 a~f を含みます。

    md5hash 値は、次の署名文字列から生成されます。

    sstring = "Privatekey+URI+timestamp" (各項目は `+` 記号なしで直接連結されます。URI はリクエスト対象オブジェクトの相対パス (例:/Filename) で、クエリパラメーターは含みません)
    md5hash = md5sum(sstring)
  • 認証ロジック

    CDN または のエッジノードがリソースのリクエストを受信すると、まず timestamp + 有効期間 が経過しているかどうかを確認します。

    • timestamp + 有効期間 が現在時刻より前の場合、リクエストは期限切れです。サーバーは HTTP 403 エラーを返します。

    • timestamp + 有効期間 が現在時刻より後の場合、サーバーは sstring 形式で署名文字列を構築し、その MD5 値を計算し、結果をリクエスト内の md5hash 値と比較します。

      • 値が一致する場合、認証に成功し、エッジノードはリクエストされたリソースを返します。

        説明

        認証に成功すると、エッジノードは URL から認証パラメーターを削除します。 これにより、キャッシュヒット率が向上し、オリジンへのトラフィックが削減されます。 例:

        • 署名パラメーター付き URL:http://DomainName/FileName?{sign=<md5hash>&time=<timestamp>}

        • 認証後:

          • キャッシュキー生成用の URL:http://DomainName/FileName

          • オリジンリクエストの URL:http://DomainName/FileName

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

使用例

以下の例では、Type F URL 署名の実装方法を示します。

  • 前提条件

    • 取得するオブジェクト:

      http://domain.example.com/test.flv
      説明

      リクエスト 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

    • PrivateKey: aliyuncdnexp1234

    • timestamp: 55CE8100

  • プロセス

    1. Privatekey+URI+timestamp の形式で署名文字列 sstring を作成します。

      aliyuncdnexp1234/test.flv55CE8100
    2. 署名文字列の MD5 ハッシュを計算します。

      md5hash = md5sum(aliyuncdnexp1234/test.flv55CE8100) = a37fa50a5fb8f71214b1e7c95ec7a1bd
    3. 署名結果とタイムスタンプをクエリパラメーターとして追加し、署名付き URL を作成します。

      http://domain.example.com/test.flv?sign=a37fa50a5fb8f71214b1e7c95ec7a1bd&time=55CE8100

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