Usa la solicitud update-cache
para actualizar y quitar contenido de la Caché de AMP de Google.
Actualmente, update-cache
solo garantiza que se actualice el contenido dentro de su edad máxima, es decir, el tiempo máximo durante el que se considerará actualizado un recurso.
La solicitud update-cache
requiere que el propietario del dominio firme las solicitudes con una clave RSA y que se publique la clave pública correspondiente desde una URL estándar en el dominio de origen.
Para descartar cualquier versión de un documento que esté almacenada en caché, envía una solicitud firmada a la caché de AMP. Se invoca la solicitud update-cache
en esta dirección:
https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&_ts=<ts_val>&_url_signature=<sig_val>
Parámetros
La solicitud update-cache
requiere los siguientes parámetros y valores:
Parámetros | |
---|---|
example-com y example.com
|
Obligatorio Es el nombre de dominio especificado según los formatos usados en el formato de URL de caché de AMP. |
<cache.updateCacheApiDomainSuffix>
|
Obligatorio Es el nombre de dominio de la Caché de AMP. Para obtener más información, consulta cómo llamar a la solicitudupdate-cache .
|
amp_ts=<ts_val>
|
Obligatorio Este parámetro representa una marca de tiempo epoch UNIX, que se usa para evitar los ataques de repetición. El valor debe ser el tiempo actual en segundos, que debe ser 1 minuto antes o después de la hora actual. |
amp_url_signature=<sig_val>
|
Obligatorio Este parámetro representa la firma RSA de toda la ruta de solicitud (consulta Cómo generar la clave RSA), que incluyeamp_action y amp_ts , pero no la firma propia.
|
Lineamientos
Debes seguir los lineamientos de update-cache
:
- El nombre de host de la Caché de AMP (cdn.ampproject.org) se excluye de la firma para permitir el envío de la misma solicitud firmada a varios operadores de la Caché de AMP.
- En el caso de la verificación de firmas, debes publicar la clave de RSA pública en una ubicación fija en el dominio del documento de AMP (para generar la clave, consulta Generar la clave de RSA). Por ejemplo:
https://example.com/.well-known/amphtml/apikey.pub
- La clave pública no debe estar bloqueada por robots.txt.
- La URL debe ser HTTPS.
- El dominio debe ser el dominio exacto que quieres actualizar, no un subdominio ni un superdominio.
- Debes publicar la clave en formato PEM con el tipo de contenido "texto sin formato".
- La caché de AMP siempre obtiene la clave pública del mismo dominio que la solicitud, independientemente del dominio especificado por el documento mediante la etiqueta any rel=canonical. Si el dominio de origen publica un redireccionamiento de HTTP en la ubicación que se descartará, solo se descartará de la caché la ruta solicitada, y no el destino del redireccionamiento.
Cómo actualizar o quitar contenido
Puedes usar update-cache
para actualizar o quitar permanentemente contenido de la caché de AMP de Google una vez que se haya quitado el contenido de su origen. Para actualizar o quitar contenido, sigue estos pasos:
- Busca el siguiente archivo:
https://cdn.ampproject.org/caches.json
- En el archivo JSON, itera las entradas ubicadas en las entradas
caches
. - Selecciona las
caches
que quieras admitir. - Llama a la solicitud
update-cache
mediante el elementoupdateCacheApiDomainSuffix
de cada entradacache
. - Crea las URL usando el siguiente formato:
https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&_ts=<ts_val>&_url_signature=<sig_val>
Cómo generar la clave de RSA
El proyecto OpenSSL proporciona herramientas de línea de comandos para generar y administrar claves de RSA asimétricas. También puedes generar claves de RSA y administrarlas programáticamente mediante la biblioteca de OpenSSL o una API criptográfica equivalente (nodo-criptográfica, NSS o GnuTLS).
- Genera un par de claves de RSA en el formato PEM textual de la siguiente manera:
openssl genrsa 2048 > private-key.pem openssl rsa -in private-key.pem -pubout >public-key.pem
- Publica la clave pública en el dominio que se actualizará en la siguiente ubicación:
https://example.com/.well-known/amphtml/apikey.pub
La URL debe ser HTTPS. Un usuario anónimo debe poder acceder a la clave de manera pública.
- Usa la clave privada para firmar la solicitud
update-cache
. Por ejemplo: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
El resultado de signature.bin es una firma de RSA binaria.
- Usa la clave pública para verificar la firma:
openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt
- Codifica la firma de RSA binaria con una variante de base64 segura para la Web:
cat signature.bin | base64 -w0 | tr '/+' '_-' | tr -d '=' > base64.txt
- Usa el parámetro de búsqueda
amp_url_signature
para adjuntar la firma de RSA con codificación base64 a la URL.echo "$(cat url.txt)&_url_signature=$(cat base64.txt)"
Cómo actualizar la clave RSA
Si quieres actualizar tu clave de RSA, puedes acceder a ella mediante el vínculo de caché de AMP y, en el plazo de unas horas, Google rastreará la nueva clave de RSA. Este es el vínculo de la Caché de AMP:
https://example-com.<cache.updateCacheApiDomainSuffix>/r/s/example.com/.well-known/amphtml/apikey.pub