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&_ts=<ts_val>&_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 diupdate-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), inclusiamp_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:
- Recupera il seguente file:
https://cdn.ampproject.org/caches.json
- Continua a scorrere le voci
caches
del file JSON. - Seleziona il
caches
che vuoi supportare. - Chiama la richiesta
update-cache
utilizzandoupdateCacheApiDomainSuffix
per ogni vocecache
. - Crea gli URL utilizzando il seguente formato:
https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&_ts=<ts_val>&_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).
- 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
- 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.
- 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&_ts=$(date +%s)" && cat url.txt | openssl dgst -sha256 -sign private-key.pem > signature.bin
L'output della firma.bin è una firma RSA binaria.
- Utilizza la chiave pubblica per verificare la firma:
openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt
- Codifica la firma RSA binaria utilizzando la variante sicura web di base64:
cat signature.bin | base64 -w0 | tr '/+' '_-' | tr -d '=' > base64.txt
- Aggiungi la firma RSA con codifica base64 all'URL utilizzando il
parametro di ricerca
amp_url_signature
.echo "$(cat url.txt)&_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