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 el contenido esté actualizado dentro de su max-age, es decir, el tiempo máximo durante el cual un recurso se considerará actualizado.

La solicitud update-cache requiere que el propietario del dominio firme las solicitudes con una clave de RSA y que la clave pública correspondiente se publique desde una URL estándar en el dominio de origen.

Para descartar cualquier versión de un documento actualmente almacenada en caché, envía una solicitud firmada a la caché de AMP. La solicitud update-cache se invoca 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. Consulta cómo invocar la solicitud update-cache para obtener más información.
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 de RSA de toda la ruta de la solicitud (consulta cómo Generar la clave de RSA), que incluye amp_action y amp_ts, pero no la propia firma.

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 contenido permanentemente de la caché de la AMP de Google una vez que el contenido se quitó 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 de caches.
  3. Selecciona las caches que quieres permitir.
  4. Invoca la solicitud update-cache mediante el elemento updateCacheApiDomainSuffix de cada entrada de cache.
  5. Crea las URL según el formato que se muestra a continuació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>

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=1484941817' && cat url.txt | openssl dgst -sha256 -sign private-key.pem >signature.bin

    El resultado de signature.bin es una firma de RSA binaria.

  4. Codifica la firma de RSA binaria con una variante de base64 segura para la Web.
  5. Usa el parámetro de consulta amp_url_signature para adjuntar la firma de RSA con codificación base64 a la URL.
  6. Usa la clave pública para verificar la firma:
    openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt

Cómo actualizar la clave de 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 caché de AMP:

https://example-com.<cache.updateCacheApiDomainSuffix>/r/s/example.com/.well-known/amphtml/apikey.pub