AMP-Inhalte aktualisieren

Mit der update-cache-Anfrage können Sie Inhalte im Google AMP Cache aktualisieren oder entfernen. Derzeit stellt update-cache nur sicher, dass der Inhalt innerhalb seines Höchstalters aktualisiert wird. Das ist die maximale Zeitspanne, in der eine Ressource als aktuell gilt.

Bei einer update-cache-Anfrage muss der Domaininhaber die Anfragen mit einem RSA-Schlüssel signieren und den entsprechenden öffentlichen Schlüssel über eine Standard-URL in der Quelldomain bereitstellen.

Sie können jede Version eines Dokuments, die momentan im Cache gespeichert ist, entfernen. Dazu senden Sie eine signierte Anfrage an den AMP Cache. Die update-cache-Anfrage wird unter dieser Adresse aufgerufen:

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

Parameter

In einer update-cache-Anfrage müssen die folgenden Parameter und Werte angegeben werden:

Parameter
example-com und example.com

Erforderlich

Der Domainname in den unter URL-Format des AMP Cache angegebenen Formaten.
<cache.updateCacheApiDomainSuffix>

Erforderlich

Der Domainname des AMP Cache. Weitere Informationen finden Sie im Abschnitt zum Thema update-cache-Anfrage aufrufen.
amp_ts=<ts_val>

Erforderlich

Dieser Parameter steht für einen Zeitstempel der UNIX-Epoche, mit dem Replay-Angriffe verhindert werden. Der Wert sollte der aktuellen Zeit in Sekunden entsprechen und darf maximal eine Minute vor oder nach der aktuellen Uhrzeit liegen.
amp_url_signature=<sig_val>

Erforderlich

Dieser Parameter steht für die RSA-Signatur des gesamten Anfragepfads (siehe RSA-Schlüssel generieren), einschließlich amp_action und amp_ts, aber ohne die Signatur selbst.

Richtlinien

Es gelten die update-cache-Richtlinien:

  • Der Hostname des AMP Cache (cdn.ampproject.org) wird nicht in der Signatur verwendet, damit dieselbe signierte Anfrage an mehrere AMP Cache-Operatoren gesendet werden kann.
  • Für die Signaturprüfung müssen Sie den öffentlichen RSA-Schlüssel an einem bestimmten Ort in der Domain des AMP-Dokuments bereitstellen. Wie Sie einen Schlüssel generieren, erfahren Sie unter RSA-Schlüssel generieren. Beispiel:
    https://example.com/.well-known/amphtml/apikey.pub
  • Der öffentliche Schlüssel darf nicht durch eine robots.txt-Datei blockiert werden.
  • Für die URL muss HTTPS verwendet werden.
  • Sie müssen die Domain angeben, die Sie aktualisieren möchten, keine Sub- oder Superdomain.
  • Sie müssen den Schlüssel im PEM-Format veröffentlichen und mit dem Inhaltstyp "text/plain" bereitstellen.
  • Der AMP Cache ruft den öffentlichen Schlüssel immer von derselben Anfragedomain ab, unabhängig davon, welche Domain im Dokument in einem beliebigen Tag vom Typ "rel=canonical" angegeben ist. Wenn die Quelldomain eine HTTP-Weiterleitung an dem Ort bereitstellt, der geleert werden soll, wird nur der angeforderte Pfad aus dem Cache entfernt und nicht das Ziel der Weiterleitung.

Inhalte aktualisieren oder entfernen

Sie können mit update-cache Inhalte aktualisieren oder endgültig aus dem Google AMP Cache entfernen, nachdem der Inhalt von der Quelle entfernt wurde. Führen Sie die folgenden Schritte aus, um Inhalte zu aktualisieren oder zu entfernen:

  1. Rufen Sie die folgende Datei ab:
    https://cdn.ampproject.org/caches.json
  2. Sehen Sie sich die Einträge der caches in der JSON-Datei an.
  3. Wählen Sie die caches aus, die Sie unterstützen möchten.
  4. Rufen Sie die update-cache-Anfrage mit updateCacheApiDomainSuffix aus jedem cache-Eintrag auf.
  5. Erstellen Sie die URLs im folgenden Format:
    https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=<ts_val>&amp_url_signature=<sig_val>

RSA-Schlüssel generieren

OpenSSL stellt Befehlszeilentools zum Generieren und Verwalten asymmetrischer RSA-Schlüssel zur Verfügung. Sie können auch RSA-Schlüssel generieren und diese programmatisch über die OpenSSL-Bibliothek oder eine äquivalente Krypto-API verwalten, zum Beispiel Node-Crypto, NSS oder GnuTLS.

  1. Generieren Sie ein Paar RSA-Schlüssel im PEM-Textformat:
    openssl genrsa 2048 > private-key.pem
    openssl rsa -in private-key.pem -pubout >public-key.pem
  2. Veröffentlichen Sie den öffentlichen Schlüssel in der zu aktualisierenden Domain unter dem folgenden Pfad:
    https://example.com/.well-known/amphtml/apikey.pub

    Für die URL muss HTTPS verwendet werden. Der Schlüssel muss für anonyme Nutzer öffentlich zugänglich sein.

  3. Verwenden Sie den privaten Schlüssel, um die update-cache-Anfrage zu signieren. Beispiel:
    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

    Die Ausgabe an signature.bin ist eine binäre RSA-Signatur.

  4. Codieren Sie die binäre RSA-Signatur mit der für das Web geeigneten Variante von Base64.
  5. Hängen Sie die Base64-codierte RSA-Signatur mit dem Abfrageparameter amp_url_signature an die URL an.
  6. Verwenden Sie den öffentlichen Schlüssel, um die Signatur zu verifizieren:
    openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt

RSA-Schlüssel aktualisieren

Wenn Sie Ihren RSA-Schlüssel aktualisieren möchten, können Sie über den AMP Cache-Link darauf zugreifen. Google kann Ihren neuen RSA-Schlüssel innerhalb einiger Stunden crawlen. Das ist der Link:

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