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 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 RSA pública en una ubicación fija del dominio del documento de AMP (para generar la clave, consulta Cómo generar la clave 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 se que especifique en 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 RSA

El proyecto OpenSSL proporciona herramientas de línea de comandos para generar y administrar claves RSA asimétricas. También puedes generar claves RSA y administrarlas de forma programática mediante la biblioteca de OpenSSL o una API criptográfica equivalente (node-crypto, NSS o GnuTLS).

  1. Genera un par de claves 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 búsqueda 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 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