Por padrão, o conteúdo distribuído pela CDNDCDN é público e acessível a qualquer pessoa com a URL. Para proteger os recursos de origem contra acessos não autorizados e downloads maliciosos, use a assinatura de URL junto com outros métodos de controle de acesso, como a proteção contra hotlink de Referer e listas de bloqueios/listas de permissões de IP. A assinatura de URL protege o conteúdo ao validar a string criptografada e o carimbo de data e hora contidos em uma URL assinada.
Como funciona a assinatura de URL
A assinatura de URL impede o acesso não autorizado aos recursos de origem coordenando as requisições entre os POPs da Alibaba Cloud CDNDCDN e a origem. O processo envolve três componentes principais:
Servidor de aplicação de origem: gera uma URL assinada com base em uma regra de assinatura definida, incluindo o algoritmo e a chave, e a retorna ao cliente.
Cliente: envia a URL assinada para um POP da CDNDCDN para solicitar um recurso.
**POP da CDN**DCDN**: valida as informações na URL assinada, como a string de assinatura e o carimbo de data e hora.
-
Os clientes da CDNDCDN configuram as regras de geração de URLs assinadas (incluindo um algoritmo de assinatura e uma chave) no servidor de aplicação de origem.
Por exemplo, uma URL assinada pode ter o formato
http://DomainName/timestamp/md5hash/FileName. Quando um cliente visita uma página na sua aplicação, o servidor de aplicação de origem gera uma URL assinada com base nas regras configuradas e a insere na página retornada ao cliente.
O cliente usa a URL assinada para solicitar o recurso de um POP da CDNDCDN.
-
O POP da CDNDCDN valida as informações na URL assinada, como a string de assinatura e o carimbo de data e hora, para determinar se a requisição é legítima.
Se a autenticação falhar, o POP nega a requisição.
-
Se a autenticação for bem-sucedida, o POP fornece o conteúdo.
NotaSe um nó da CDNDCDN não possui o recurso em cache, o nó remove os parâmetros de autenticação da URL assinada e a restaura para a URL original (por exemplo,
http://DomainName/FileName) e, em seguida, usa a URL original para gerar uma chave de cache ou iniciar uma requisição de busca na origem.Após autenticar a URL da requisição, a CDNDCDN codifica quaisquer caracteres especiais na URL, como caracteres chineses ou outros não ASCII.
Notas de uso
Assinatura de URL para atualização e pré-busca — Por favor, envie uma URL de atualização ou pré-busca que corresponda à chave de cache real. Para um domínio com assinatura de URL configurada, envie a URL original sem os parâmetros de autenticação (domínio acelerado + caminho do arquivo) e mantenha os parâmetros de consulta de negócio. Se o valor de um parâmetro de consulta de negócio contiver /, codifique esse caractere como %2F antes do envio. Não envie uma URL de acesso do cliente que contenha parâmetros de autenticação. Essa URL pode diferir da chave de cache real e não corresponder ao recurso em cache de destino. Prepare e envie a URL usando as regras e exemplos em the refresh and prefetch resource guide.
Configure e ative a assinatura de URL
Certifique-se de ter configurado as regras de geração de URLs assinadas, incluindo o algoritmo de assinatura e a chave, no servidor de aplicação de origem.
A lógica de assinatura de URL configurada no console da CDNDCDN deve corresponder à lógica no servidor de aplicação de origem.
Faça login no console do DCDN.
No painel de navegação à esquerda, clique em Domain Names.
Na página Domain Names, encontre o domínio de destino e clique em Configure.
Na árvore de navegação à esquerda do domínio, clique em Access Control.
Clique na guia URL Signing.
Por favor, ative o seletor URL Authentication Setting.
-
Na caixa de diálogo URL Signing, configure os parâmetros de assinatura de URL.

Parâmetro
Descrição
Authentication Type
Por favor, selecione o tipo de autenticação que corresponda ao formato de URL assinada do seu servidor de origem.
NotaSe a assinatura de URL falhar, um erro 403 é retornado:
Erro de cálculo MD5
Exemplo:
X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd760beErro relacionado ao tempo
Exemplo:
X-Tengine-Error:denied by req auth: expired timestamp=1439469547
Primary Key
Por favor, insira a chave primária. Deve ter entre 16 e 128 caracteres e pode conter letras e dígitos. Não pode conter espaços ou cifrões ($).
Secondary Key
Por favor, insira a chave secundária. Deve ter entre 16 e 128 caracteres e pode conter letras e dígitos. Não pode conter espaços ou cifrões ($). Pelo menos uma chave é obrigatória.
Validity period
Uma URL assinada permanece válida de
timestampatétimestamp+validity period. As requisições fora dessa janela são rejeitadas.Unidade: segundos
Faixa de valores: 1 a 31.536.000
Valor padrão: 1800 (30 minutos)
Exemplo: Uma URL assinada com timestamp 2020-08-15 15:00:00 (UTC+8) e um período de validade de 1800 segundos expira em 2020-08-15 15:30:00 (UTC+8).
Clique em OK.
Verifique a URL assinada
Primeiro, ative a assinatura de URL. Em seguida, gere uma URL de teste no console do DCDN e verifique a lógica de assinatura.
-
Na seção Generate Encrypted URL for Testing, especifique a Original URL e as informações de autenticação.

Parâmetro
Descrição
Original URL
Insira a url original. Exemplo:
https://www.aliyun.com.Authentication Type
Por favor, selecione o tipo de autenticação configurado em Configure e ative a assinatura de URL.
Authentication Key
Por favor, insira a Primary Key ou a Secondary Key de Configure e ative a assinatura de URL.
Validity Period
Por favor, insira o período de validade em segundos. Deve corresponder ao valor em Configure e ative a assinatura de URL.
-
Clique em Generate para obter a Authentication URL e o Timestamp.

Desativar a assinatura de URL
Se desativar a assinatura de URL no console da CDNDCDN, mas as requisições do cliente ainda contiverem parâmetros de assinatura, a CDNDCDN não poderá restaurar as URLs das requisições para o formato original. Isso causa falhas de cache, o que redireciona todas essas requisições para a origem. Como resultado, o tráfego de origem e os custos aumentam significativamente. Portanto, para desativar totalmente a assinatura de URL, remova a configuração tanto do servidor de aplicação quanto do console da CDNDCDN.
No console do DCDN, acesse a seção URL Authentication Setting e desative o seletor de assinatura de URL.
No servidor de origem, remova a lógica que adiciona parâmetros de autenticação às URLs.