Cómo actualizar contenido de AMP

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&amp_ts=<ts_val>&amp_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 solicitud update-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 incluye amp_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:

  1. Busca el siguiente archivo:
    https://cdn.ampproject.org/caches.json
  2. En el archivo JSON, itera las entradas ubicadas en las entradas caches.
  3. Selecciona las caches que quieras admitir.
  4. Llama a la solicitud update-cache mediante el elemento updateCacheApiDomainSuffix de cada entrada cache.
  5. Crea las URL usando el siguiente formato:
    https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=<ts_val>&amp_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).

  1. 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
  2. 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.

  3. 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&amp_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.

  4. Usa la clave pública para verificar la firma:
    openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt
  5. 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
  6. 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