Use a solicitação update-cache
para atualizar e remover conteúdo do Cache de AMP do Google.
Atualmente, update-cache
só garante que o conteúdo seja atualizado dentro do próprio max-age, que é o período máximo em que um recurso será considerado atualizado.
A solicitação update-cache
exige que o proprietário do domínio assine as solicitações com uma Chave RSA e disponibilize a chave pública correspondente de um URL padrão no domínio de origem.
Você pode liberar qualquer versão em cache de um documento emitindo uma solicitação assinada para o cache de AMP. A solicitação update-cache
é chamada neste endereço:
https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&_ts=<ts_val>&_url_signature=<sig_val>
Parâmetros
A solicitação update-cache
requer os seguintes parâmetros e valores:
Parâmetros | |
---|---|
example-com e example.com
|
Obrigatório O nome de domínio especificado de acordo com os formatos usados no formato do URL de cache de AMP. |
<cache.updateCacheApiDomainSuffix>
|
Obrigatório O nome de domínio do Cache de AMP. Consulte Chamar a solicitaçãoupdate-cache para ver mais informações.
|
amp_ts=<ts_val>
|
Obrigatório Esse parâmetro representa uma data e hora na era UNIX, que é usada para evitar ataques de repetição. O valor precisa ser a hora atual em segundos, limitando-se a um minuto antes ou depois do horário atual. |
amp_url_signature=<sig_val>
|
Obrigatório Esse parâmetro representa a assinatura RSA de todo o caminho da solicitação, incluindoamp_action e amp_ts , mas excluindo a própria
assinatura. Consulte Gerar a Chave RSA.
|
Diretrizes
Siga as diretrizes de update-cache
:
- O nome do host do Cache de AMP (cdn.ampproject.org) é excluído da assinatura para permitir o envio da mesma solicitação assinada para vários operadores do Cache de AMP.
- Para a verificação da assinatura, disponibilize a chave RSA pública em um local fixo
no domínio do documento AMP. Para gerar a chave, consulte
Gerar a chave RSA. Exemplo:
https://example.com/.well-known/amphtml/apikey.pub
- A chave pública não pode ser robotizada.
- O URL precisa ser um HTTPS.
- O domínio precisa ser exatamente aquele que você quer atualizar, não um sub ou superdomínio.
- Publique a chave no formato PEM e a disponibilize com o tipo de conteúdo "text/plain".
- O cache de AMP sempre busca a chave pública no mesmo domínio da solicitação, independentemente do domínio especificado pelo documento por meio da tag any rel=canonical. Se o domínio de origem disponibilizar um redirecionamento HTTP no local a ser liberado, somente o caminho solicitado será liberado do cache, e não o destino do redirecionamento.
Atualizar ou remover conteúdo
Você pode usar update-cache
para atualizar ou remover permanentemente conteúdo do Cache de AMP do Google depois que esse conteúdo tiver sido removido da origem. Para atualizar ou remover um conteúdo, siga as etapas abaixo:
- Busque o seguinte arquivo:
https://cdn.ampproject.org/caches.json
- Itere nas entradas de
caches
no arquivo JSON. - Selecione os
caches
que você pretende oferecer. - Chame a solicitação
update-cache
usando oupdateCacheApiDomainSuffix
de cada entradacache
. - Crie os URLs usando o seguinte formato:
https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&_ts=<ts_val>&_url_signature=<sig_val>
Gerar a chave RSA
O projeto OpenSSL fornece ferramentas de linha de comando para gerar e gerenciar chaves RSA assimétricas. Você também pode gerar chaves RSA e gerenciá-las de forma programática por meio da biblioteca OpenSSL ou de uma API de criptografia equivalente (node-crypto, NSS ou GnuTLS).
- Gere um par de chaves RSA no formato textual PEM, desta forma:
openssl genrsa 2048 > private-key.pem openssl rsa -in private-key.pem -pubout >public-key.pem
- Publique a chave pública no domínio a ser atualizado no seguinte local:
https://example.com/.well-known/amphtml/apikey.pub
O URL precisa ser um HTTPS. A chave precisa estar publicamente acessível a usuários anônimos.
- Use a chave privada para assinar a solicitação
update-cache
. Por exemplo:echo -n > url.txt "/update-cache/c/s/example.com/article?amp_action=flush&_ts=$(date +%s)" && cat url.txt | openssl dgst -sha256 -sign private-key.pem > signature.bin
A saída para signature.bin é uma assinatura RSA binária.
- Use a chave pública para verificar a assinatura:
openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt
- Codifique a assinatura RSA binária usando a variante segura para a Web de
base64 (link em inglês):
cat signature.bin | base64 -w0 | tr '/+' '_-' | tr -d '=' > base64.txt
- Anexe a assinatura RSA codificada em base64 ao URL usando o
parâmetro de consulta
amp_url_signature
.echo "$(cat url.txt)&_url_signature=$(cat base64.txt)"
Atualizar a Chave RSA
Se você quiser atualizar sua chave RSA, poderá acessá-la por meio do link do cache de AMP, e o Google poderá rastreá-la em algumas horas. Este é o link do Cache de AMP:
https://example-com.<cache.updateCacheApiDomainSuffix>/r/s/example.com/.well-known/amphtml/apikey.pub