Mettre à jour le contenu AMP

Utilisez la requête update-cache pour mettre à jour et supprimer le contenu de Google AMP Cache. Actuellement, update-cache garantit uniquement que le contenu est mis à jour dans les limites de sa valeur max-age, ce qui correspond au délai maximal pendant lequel une ressource est considérée comme à jour.

Pour la requête update-cache, le propriétaire du domaine doit obligatoirement signer les requêtes avec une clé RSA et transmettre la clé publique correspondante à partir d'une URL standard sur le domaine d'origine.

Vous pouvez supprimer toute version en cache d'un document en envoyant une requête signée à AMP Cache. La requête update-cache est appelée à l'adresse suivante :

https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=<ts_val>&amp_url_signature=<sig_val>

Paramètres

Les valeurs et paramètres suivants doivent être définis pour la requête update-cache :

Paramètres
example-com et example.com

Obligatoire

Le nom de domaine spécifié conformément aux formats utilisés dans le format d'URL de Google AMP Cache.
<cache.updateCacheApiDomainSuffix>

Obligatoire

Le nom de domaine d'AMP Cache. Reportez-vous à l'instruction Appelez la requête update-cache pour en savoir plus.
amp_ts=<ts_val>

Obligatoire

Ce paramètre représente un horodatage UNIX-epoch, utilisé pour empêcher les attaques par rejeu. La valeur doit être l'heure actuelle en secondes, à une minute près.
amp_url_signature=<sig_val>

Obligatoire

Ce paramètre représente la signature RSA de l'ensemble du chemin d'accès de la requête (consultez la section Générer la clé RSA), y compris amp_action et amp_ts, hormis la signature elle-même.

Consignes

Vous devez respecter les consignes update-cache :

  • Le nom d'hôte d'AMP Cache (cdn.ampproject.org) est exclu de la signature pour permettre l'envoi de la même requête signée à plusieurs opérateurs d'AMP Cache.
  • Pour la vérification de la signature, vous devez transmettre la clé publique RSA à un emplacement fixe du domaine du document AMP (pour créer cette clé, voir Générer la clé RSA). Exemple :
    https://example.com/.well-known/amphtml/apikey.pub
  • La clé publique ne doit pas être bloquée par protocole d'exclusion des robots.
  • L'URL doit être au format HTTPS.
  • Le domaine doit être le domaine exact que vous souhaitez mettre à jour et non un sous-domaine ou un domaine de niveau supérieur.
  • Vous devez publier la clé au format PEM et lui attribuer le type de contenu "text/plain".
  • Google AMP Cache lit toujours la clé publique du domaine correspondant à la requête, quel que soit le domaine spécifié par le document via une balise rel="canonical". Si le domaine d'origine contient une redirection HTTP dans l'emplacement dont le contenu doit être supprimé, seul le contenu correspondant au chemin de la requête est supprimé du cache (et non celui qui correspond à la cible de la redirection).

Mettre à jour ou supprimer du contenu

Vous pouvez utiliser update-cache pour mettre à jour ou supprimer définitivement le contenu de Google AMP Cache une fois que ce contenu a été supprimé de son origine. Pour mettre à jour ou supprimer du contenu, suivez les étapes ci-dessous :

  1. Récupérez le fichier suivant :
    https://cdn.ampproject.org/caches.json
  2. Parcourez les entrées correspondant aux entrées de caches du fichier JSON.
  3. Sélectionnez les caches que vous souhaitez traiter.
  4. Appelez la requête update-cache à l'aide de updateCacheApiDomainSuffix à partir de chaque entrée cache.
  5. Créez les URL en respectant le format suivant :
    https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=<ts_val>&amp_url_signature=<sig_val>

Générer la clé RSA

Le projet OpenSSL fournit des outils de ligne de commande permettant de générer et de gérer des clés RSA asymétriques. Vous pouvez également générer des clés RSA et les gérer à l'aide d'un programme via la bibliothèque OpenSSL ou une API de chiffrement équivalente (node-crypto, NSS ou GnuTLS).

  1. Générez une paire de clés RSA au format PEM textuel comme suit :
    openssl genrsa 2048 > private-key.pem
    openssl rsa -in private-key.pem -pubout >public-key.pem
  2. Publiez la clé publique sur le domaine à mettre à jour à l'emplacement suivant :
    https://example.com/.well-known/amphtml/apikey.pub

    L'URL doit être au format HTTPS. La clé doit être accessible publiquement par un utilisateur anonyme.

  3. Utilisez la clé privée pour signer la requête update-cache. Exemple :
    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

    La sortie signature.bin est une signature RSA binaire.

  4. Utilisez la clé publique pour valider la signature :
    openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt
  5. Encodez la signature RSA binaire à l'aide de la variante de base64 conforme aux normes de sécurité du Web :
    cat signature.bin | base64 -w0 | tr '/+' '_-' | tr -d '=' > base64.txt
  6. Ajoutez à l'URL la signature RSA encodée en base64 à l'aide du paramètre de requête amp_url_signature.
    echo "$(cat url.txt)&amp_url_signature=$(cat base64.txt)"

Mettre à jour la clé RSA

Si vous souhaitez mettre à jour votre clé RSA, vous pouvez accéder à celle-ci via le lien Google AMP Cache et quelques heures suffiront à Google pour indexer votre nouvelle clé RSA. Voici le lien AMP Cache :

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