全部产品
Search
文档中心

CDN:Signing tipe C

更新时间:Feb 06, 2026

Fitur Penandatanganan URL melindungi resource situs Anda dari pengunduhan dan penggunaan yang tidak sah. Alibaba Cloud CDN menyediakan empat metode penandatanganan. Topik ini menjelaskan prinsip signing tipe C dan memberikan contohnya.

Cara kerja

  • Struktur URL yang ditandatangani untuk signing tipe C

    • Format 1

      http://DomainName/{<md5hash>/<timestamp>}/FileName
    • Format 2

      http://DomainName/FileName?{KEY1=<md5hash>&KEY2=<timestamp>}
    Catatan

    Konten dalam {} adalah informasi terenkripsi yang ditambahkan ke URL standar.

  • Deskripsi bidang

    Bidang

    Deskripsi

    DomainName

    Nama domain situs CDN Anda.

    PrivateKey

    Kunci enkripsi kustom. Panjangnya harus antara 16 hingga 32 karakter dan dapat berisi huruf kapital, huruf kecil, serta angka.

    FileName

    URL untuk pengambilan asal yang sebenarnya. Untuk penandatanganan, FileName harus diawali dengan /.

    timestamp

    Waktu saat server penandatanganan menghasilkan URL yang ditandatangani. Bidang ini, bersama dengan validity period of the signed URL, menentukan kapan URL tersebut kedaluwarsa. Waktu ini merupakan stempel waktu UNIX dari server penandatanganan. Stempel waktu UNIX adalah jumlah detik yang telah berlalu sejak pukul 00:00:00 UTC pada 1 Januari 1970. Nilainya berupa bilangan desimal positif 10 digit dan tidak bergantung pada zona waktu. Timestamp direpresentasikan dalam format heksadesimal.

    Catatan

    Dalam kebanyakan kasus, periode validitas URL yang ditandatangani adalah periode validitas yang dikonfigurasi untuk CDN. Jika Anda memperpanjang periode validitas saat menghasilkan URL yang ditandatangani, `timestamp` = stempel waktu UNIX + periode perpanjangan. Periode validitas aktual URL yang ditandatangani adalah `timestamp` + periode yang dikonfigurasi untuk CDN.

    md5hash

    String yang dihitung menggunakan algoritma MD5. Ini adalah string tetap sepanjang 32 karakter yang terdiri dari angka 0–9 dan huruf kecil a–z.

    Nilai md5hash dihitung dari string berikut.

    sstring = "Privatekey+URI+timestamp" (URI adalah alamat relatif objek yang diminta dan tidak mengandung parameter, seperti /Filename)
    md5hash = md5sum(sstring)
  • Logika otentikasi

    Setelah server CDN menerima permintaan resource, server tersebut memeriksa apakah timestamp + periode validitas URL yang ditandatangani lebih awal daripada waktu saat ini.

    • Jika timestamp + periode validitas URL yang ditandatangani lebih awal daripada waktu saat ini, server menentukan bahwa URL telah kedaluwarsa dan mengembalikan error HTTP 403.

    • Jika timestamp + periode validitas URL yang ditandatangani tidak lebih awal daripada waktu saat ini, server menyusun string dalam format sstring. Untuk informasi cara menyusun sstring, lihat tabel. Server kemudian menggunakan algoritma MD5 untuk menghitung nilai md5hash. Terakhir, server membandingkan nilai md5hash yang dihitung dengan nilai md5hash dalam permintaan pengguna.

      • Jika nilainya sesuai, otentikasi berhasil dan resource dikembalikan.

        Catatan

        Saat otentikasi berhasil, parameter penandatanganan dihapus dari URL agar kembali ke bentuk URL aslinya. Hal ini meningkatkan rasio hit cache dan mengurangi lalu lintas kembali ke asal. Contohnya:

        • Format URL dengan parameter penandatanganan: http://DomainName/FileName?{KEY1=<md5hash>&KEY2=<timestamp>}

        • Setelah otentikasi berhasil:

          • Format URL yang digunakan untuk menghasilkan kunci cache: http://DomainName/FileName

          • Format URL untuk pengambilan asal yang sebenarnya: http://DomainName/FileName

      • Jika nilainya tidak sesuai, otentikasi gagal dan error HTTP 403 dikembalikan.

Contoh URL yang ditandatangani

Contoh berikut menunjukkan cara implementasi signing tipe C.

  • Kondisi contoh

    • Permintaan origin:

      http://domain.example.com/test.flv
      Catatan

      Jika URL permintaan berisi karakter Tionghoa atau karakter non-ASCII lainnya, Anda harus terlebih dahulu encode URL tersebut. Kemudian, gunakan URL yang telah di-encode untuk menyusun string guna penghashan. Contohnya:

      • URL asli: https://example.com/image/AlibabaCloud.jpg

      • URL yang di-encode: https://example.com/image/%E9%98%BF%E9%87%8C%E4%BA%91.jpg

    • Nilai PrivateKey: aliyuncdnexp1234.

    • Nilai timestamp: 55CE8100.

  • Alur Stitching

    1. Server CDN menyusun string yang akan di-hash untuk menghitung nilai md5hash.

      aliyuncdnexp1234/test.flv55CE8100
    2. Berdasarkan string ini, server CDN menghitung nilai md5hash.

      md5hash = md5sum(aliyuncdnexp1234/test.flv55CE8100) = a37fa50a5fb8f71214b1e7c95ec7a1bd
    3. Hasilkan URL yang ditandatangani.

      • Format 1:

        http://domain.example.com/a37fa50a5fb8f71214b1e7c95ec7a1bd/55CE8100/test.flv
      • Format 2:

        http://domain.example.com/test.flv?KEY1=a37fa50a5fb8f71214b1e7c95ec7a1bd&KEY2=55CE8100

Ketika klien melakukan permintaan menggunakan URL yang ditandatangani, server CDN menghitung nilai md5hash miliknya sendiri. Jika nilai yang dihitung sesuai dengan nilai md5hash dalam permintaan, yaitu a37fa50a5fb8f71214b1e7c95ec7a1bd, dan URL yang ditandatangani belum kedaluwarsa, otentikasi berhasil. Jika tidak, otentikasi gagal.