URL imzalama, CDN kaynaklarını hotlinking ve yetkisiz erişime karşı korur. C tipi imzalama, bir MD5 karmasını ve onaltılık zaman damgasını doğrudan URL'ye yerleştirir; böylece CDN sunucusu kaynağı sunmadan önce özgünlüğü ve son kullanma süresini doğrular.
Senaryonuza uygun imzalama yöntemini seçmek için URL imzalama genel bakış konusuna bakın.
Nasıl çalışır?
C tipi imzalama, isteğin MD5 karmasını ve onaltılık zaman damgasını URL'ye yerleştirir. Bu sayede CDN sunucusu, kaynağı sunmadan önce URL'nin özgünlüğünü ve son kullanma süresini doğrular.
İmzalamadan kaynak teslimine kadar olan tam akış şöyledir:
İmzalama sunucunuz bir UNIX zaman damgası oluşturur ve özel anahtar, dosya yolu ile zaman damgasından bir MD5 karması hesaplar.
Uygulamanız karma ve zaman damgasını URL'ye yerleştirir (aşağıda açıklanan Format 1 veya Format 2 kullanılır).
İstemci, imzalı URL'yi kullanarak bir istek gönderir.
CDN sunucusu URL'nin süresinin dolup dolmadığını kontrol eder. Süre dolmuşsa HTTP 403 döndürür.
URL hala geçerliyse, CDN sunucusu aynı girdilerden MD5 karmasını yeniden hesaplar ve istekteki karma ile karşılaştırır.
Eşleşme durumunda, CDN sunucusu imzalama parametrelerini URL'den kaldırır. Bu işlem önbellek isabet oranını artırır ve kaynağa dönüş trafiğini azaltır; ardından kaynak sunulur.
URL formatları
C tipi imzalama iki URL formatını destekler. Her ikisi de aynı iki alanı taşır: md5hash ve timestamp.
Format 1 — karma ve zaman damgası yola gömülür:
http://DomainName/{<md5hash>/<timestamp>}/FileName
Format 2 — karma ve zaman damgası sorgu parametresi olarak eklenir:
http://DomainName/FileName?{KEY1=<md5hash>&KEY2=<timestamp>}
{} içindeki içerik, standart URL'ye eklenen şifrelenmiş bilgileri temsil eder.
Alan referansı
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
md5hash hesaplama yöntemi:
sstring = Privatekey + URI + timestamp (URI is the relative path of the requested object, without query parameters — for example, /FileName)
md5hash = md5sum(sstring)
Geçerlilik süresi işleyişi:
timestamp + geçerlilik süresi değeri mevcut zamandan önce olduğunda imzalı URL'nin süresi dolar. Geçerlilik süresi, CDN alan adınız için yapılandırılan değerdir. Bir URL'nin ömrünü bu sürenin ötesine uzatmak için URL oluştururken timestamp değerini UNIX zaman damgası + uzatma süresi olarak ayarlayın. Gerçek sona erme zamanı daha sonra timestamp + yapılandırılmış geçerlilik süresi olur.
Kimlik doğrulama mantığı
CDN sunucusu bir istek aldığında:
-
timestamp + geçerlilik süresideğerinin mevcut zamandan önce olup olmadığını kontrol eder.Süresi dolmuş: HTTP 403 döndürür.
Süresi dolmamış: Karma doğrulamasına devam eder.
Privatekey,URIvetimestampdeğerlerinden aynısstringdeğerini oluşturur ve kendimd5hashdeğerini hesaplar.-
Hesaplanan karma değerini istekteki
md5hashdeğeriyle karşılaştırır.Eşleşme: Kimlik doğrulama başarılı olur. İmzalama parametreleri URL'den kaldırılır ve kaynak döndürülür.
Eşleşme yok: HTTP 403 döndürür.
Kimlik doğrulama başarılı olduktan sonra, CDN sunucusu hem önbellek anahtarı hem de kaynak çekme işlemi için temiz URL'yi (imzalama parametreleri olmadan) kullanır:
|
|
|
|
|
|
|
|
|
İmzalama parametrelerinin kaldırılması, önbelleğe alınmış yanıtların istekler arasında yeniden kullanılabilmesini sağlar. Bu durum önbellek isabet oranını artırır ve kaynağa dönüş trafiğini azaltır.
Örnek
Aşağıdaki örnek, eksiksiz bir C tipi imzalama hesaplamasını göstermektedir.
Girdiler:
|
|
|
|
|
|
|
|
|
|
|
|
1. Adım: Girdi dizesini oluşturun.
sstring = aliyuncdnexp1234/test.flv55CE8100
2. Adım: MD5 karmasını hesaplayın.
md5hash = md5sum(aliyuncdnexp1234/test.flv55CE8100)
= a37fa50a5fb8f71214b1e7c95ec7a1bd
3. Adım: İmzalı URL'yi oluşturun.
Format 1:
http://domain.example.com/a37fa50a5fb8f71214b1e7c95ec7a1bd/55CE8100/test.flv
Format 2:
http://domain.example.com/test.flv?KEY1=a37fa50a5fb8f71214b1e7c95ec7a1bd&KEY2=55CE8100
İstemci isteği gönderdiğinde, CDN sunucusu aynı girdilerden MD5 karmasını yeniden hesaplar. Sonuç a37fa50a5fb8f71214b1e7c95ec7a1bd ile eşleşirse ve URL'nin süresi dolmamışsa kimlik doğrulama başarılı olur ve kaynak döndürülür.
Sırada ne var?
URL imzalama genel bakış — dört imzalama yöntemini karşılaştırın ve senaryonuza uygun olanı seçin
URL imzalamayı yapılandırma — konsolda CDN alan adınız için URL imzalamayı etkinleştirin