Aggiornare i contenuti AMP

Utilizza la richiesta update-cache per aggiornare e rimuovere i contenuti dalla Google AMP Cache. Attualmente, la verifica update-cache garantisce che i contenuti vengano aggiornati entro il limite di età massima, vale a dire il periodo di tempo massimo in cui una risorsa sarà considerata nuova.

La richiesta update-cache richiede al proprietario del dominio di firmare le richieste con una chiave RSA e di pubblicare la chiave pubblica corrispondente da un URL standard nel dominio di origine.

Puoi svuotare qualsiasi versione attualmente memorizzata nella cache di un documento inviando una richiesta firmata alla cache AMP. La richiesta update-cache è chiamata al seguente indirizzo:

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

Parametri

La richiesta update-cache richiede i seguenti parametri e valori:

Parametri
example-com e example.com

Obbligatorio

Il nome di dominio specificato in base ai formati utilizzati nel formato URL cache AMP.
<cache.updateCacheApiDomainSuffix>

Obbligatorio

Il nome di dominio della AMP Cache. Per ulteriori informazioni, consulta la sezione Chiamare la richiesta di update-cache.
amp_ts=<ts_val>

Obbligatorio

Questo parametro rappresenta un timestamp UNIX-epoch, utilizzato per impedire gli attacchi di ripetizione. Il valore deve corrispondere all'ora corrente in secondi, che deve essere entro 1 minuto prima o dopo l'ora corrente.
amp_url_signature=<sig_val>

Obbligatorio

Questo parametro rappresenta la firma RSA dell'intero percorso della richiesta (vedi Generare la chiave RSA), inclusi amp_action e amp_ts, ma escludendo la firma stessa.

Linee guida

Devi seguire le linee guida per update-cache:

  • Il nome host della cache AMP (cdn.ampproject.org) è escluso dalla firma per consentire l'invio della stessa richiesta firmata a più operatori di AMP Cache.
  • Per la verifica della firma, devi pubblicare la chiave RSA pubblica in una posizione fissa del dominio del documento AMP (per generare la chiave, consulta Generare la chiave RSA). Ad esempio:
    https://example.com/.well-known/amphtml/apikey.pub
  • La chiave pubblica non deve essere robotata.
  • L'URL deve essere di tipo HTTPS.
  • Il dominio deve essere esattamente il dominio che vuoi aggiornare, non un sottodominio o un super dominio.
  • Devi pubblicare la chiave in formato PEM e pubblicarla con il tipo di contenuti "quot;text/plain".
  • La cache AMP recupera sempre la chiave pubblica dallo stesso dominio della richiesta, indipendentemente dal dominio specificato dal documento tramite qualsiasi tag rel=canonical. Se il dominio di origine gestisce un reindirizzamento HTTP nella posizione da svuotare, solo il percorso richiesto viene svuotato dalla cache e non la destinazione del reindirizzamento.

Aggiornare o rimuovere contenuti

Puoi utilizzare update-cache per aggiornare o rimuovere definitivamente i contenuti dalla Google AMP Cache dopo che i contenuti sono stati rimossi dall'origine. Per aggiornare o rimuovere contenuti, procedi come riportato di seguito:

  1. Recupera il seguente file:
    https://cdn.ampproject.org/caches.json
  2. Continua a scorrere le voci caches del file JSON.
  3. Seleziona il caches che vuoi supportare.
  4. Chiama la richiesta update-cache utilizzando updateCacheApiDomainSuffix per ogni voce cache.
  5. Crea gli URL utilizzando il seguente 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>

Generare la chiave RSA

Il progetto OpenSSL fornisce strumenti a riga di comando per generare e gestire le chiavi RSA asimmetriche. Puoi anche generare chiavi RSA e gestirle in modo programmatico mediante la libreria OpenSSL o un'API crypto equivalente (node-crypto, NSS o GnuTLS).

  1. Genera una coppia di chiavi RSA nel formato PEM testuale in questo modo:
    openssl genrsa 2048 > private-key.pem
    openssl rsa -in private-key.pem -pubout >public-key.pem
  2. Pubblica la chiave pubblica nel dominio da aggiornare nella seguente posizione:
    https://example.com/.well-known/amphtml/apikey.pub

    L'URL deve essere di tipo HTTPS. La chiave deve essere accessibile pubblicamente da un utente anonimo.

  3. Utilizza la chiave privata per firmare la richiesta update-cache. Ad esempio:
    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

    L'output della firma.bin è una firma RSA binaria.

  4. Utilizza la chiave pubblica per verificare la firma:
    openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt
  5. Codifica la firma RSA binaria utilizzando la variante sicura web di base64:
    cat signature.bin | base64 -w0 | tr '/+' '_-' | tr -d '=' > base64.txt
  6. Aggiungi la firma RSA con codifica base64 all'URL utilizzando il parametro di ricerca amp_url_signature.
    echo "$(cat url.txt)&amp_url_signature=$(cat base64.txt)"

Aggiornare la chiave RSA

Se vuoi aggiornare la chiave RSA, puoi accedervi tramite il link AMP Cache e Google potrebbe eseguire la scansione della nuova chiave RSA entro poche ore. Ecco il link della AMP Cache:

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