Żądanie update-cache
służy do aktualizowania i usuwania treści z Google AMP Cache.
Obecnie żądanie update-cache
zapewnia aktualizowanie treści w okresie max-age, czyli maksymalnym okresie, przez jaki zasób jest uznawany za aktualny.
Żądanie update-cache
wymaga, by właściciel domeny podpisywał żądania kluczem RSA i udostępniał zgodny klucz publiczny pod standardowym adresem URL w domenie źródłowej.
Każdą wersję dokumentu aktualnie zapisaną w pamięci podręcznej można usunąć, przesyłając podpisane żądanie do AMP Cache. Żądanie update-cache
należy wywołać pod tym adresem:
https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&_ts=<ts_val>&_url_signature=<sig_val>
Parametry
Żądanie update-cache
wymaga podania następujących parametrów i wartości:
Parametry | |
---|---|
example-com i example.com
|
Wymagany Nazwa domeny podana zgodnie z formatami używanymi w ramach formatu URL pamięci podręcznej AMP. |
<cache.updateCacheApiDomainSuffix>
|
Wymagany Nazwa domeny AMP Cache. Więcej informacji znajdziesz w sekcji Wywoływanie żądaniaupdate-cache .
|
amp_ts=<ts_val>
|
Wymagany Ten parametr reprezentuje sygnaturę czasową (w czasie uniksowym), która służy do zapobiegania atakom metodą powtórzenia. Wartość powinna być bieżącą godziną wyrażoną w sekundach i musi być zakresie jednej minuty przed bieżącą godziną lub po niej. |
amp_url_signature=<sig_val>
|
Wymagany Ten parametr reprezentuje podpis RSA całej ścieżki żądania (patrz Generowanie klucza RSA), w tymamp_action i amp_ts , ale nie zawiera samego podpisu.
|
Wskazówki
Przestrzegaj tych wskazówek dotyczących żądania update-cache
:
- Nazwa hosta pamięci podręcznej (cdn.ampproject.org) jest wykluczona z podpisu, by umożliwić wysyłanie tego samego podpisanego żądania do wielu operatorów pamięci podręcznej AMP.
- Aby umożliwić weryfikację podpisu, należy udostępniać publiczny klucz RSA w stałym miejscu w domenie dokumentu AMP (o tym, jak wygenerować klucz, przeczytasz w sekcji Generowanie klucza RSA). Przykład:
https://example.com/.well-known/amphtml/apikey.pub
- Klucz publiczny nie może być analizowany przez roboty.
- Adres URL musi zaczynać się od HTTPS.
- Podaj dokładnie tę domenę, która ma być zaktualizowana, a nie subdomenę lub domenę nadrzędną.
- Klucz opublikuj w formacie PEM i udostępniaj jako treść typu „text/plain”.
- Pamięć podręczna AMP zawsze pobiera klucz publiczny z domeny, z której pochodzi żądanie, niezależnie od domeny podanej przez dokument w tagu rel=canonical Jeśli domena pierwotna określa przekierowanie HTTP do miejsca, które ma być usunięte, z pamięci podręcznej zostanie usunięta tylko żądana ścieżka, a nie cel przekierowania.
Aktualizowanie i usuwanie treści
Używając żądania update-cache
, można zaktualizować lub trwale usunąć treść z Google AMP Cache, gdy treść zostanie usunięta z pierwotnego miejsca. Aby zaktualizować lub usunąć treści, wykonaj te czynności:
- Pobierz ten plik:
https://cdn.ampproject.org/caches.json
- Przejrzyj wpisy w żądaniach
caches
w pliku JSON. - Zaznacz żądania
caches
, które mają być obsługiwane. - Wywołaj żądanie
update-cache
, używając parametruupdateCacheApiDomainSuffix
z każdego wpisucache
. - Utwórz adresy URL w tym formacie:
https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&_ts=<ts_val>&_url_signature=<sig_val>
Generowanie klucza RSA
Projekt OpenSSL udostępnia narzędzia wiersza poleceń służące do generowania asymetrycznych kluczy RSA i zarządzania nimi. Klucze można również wygenerować programowo z użyciem biblioteki OpenSSL lub równoważnego kryptograficznego interfejsu API (node-crypto, NSS lub GnuTLS) i w ten sam sposób nimi zarządzać.
- Wygeneruj parę kluczy RSA w tekstowym formacie PEM:
openssl genrsa 2048 > private-key.pem openssl rsa -in private-key.pem -pubout >public-key.pem
- Opublikuj klucz publiczny w domenie, która ma być odświeżana, w następującym miejscu:
https://example.com/.well-known/amphtml/apikey.pub
Adres URL musi rozpoczynać się od HTTPS. Klucz musi być publicznie dostępny dla anonimowych użytkowników.
- Użyj klucza prywatnego do podpisania żądania
update-cache
. Przykład: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
Wynikiem skryptu signature.bin jest binarny podpis RSA.
- Zweryfikuj podpis, używając klucza publicznego:
openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt
- Zakoduj binarny podpis RSA, używając bezpiecznej dla sieci wersji kodowania base64:
cat signature.bin | base64 -w0 | tr '/+' '_-' | tr -d '=' > base64.txt
- Dołącz podpis RSA zakodowany w base64 do adresu URL, używając parametru zapytania
amp_url_signature
.echo "$(cat url.txt)&_url_signature=$(cat base64.txt)"
Aktualizacja klucza RSA
Jeśli chcesz zaktualizować klucz RSA, możesz uzyskać do niego dostęp, używając linku do pamięci podręcznej AMP, a Google zindeksuje nowy klucz RSA w ciągu kilku godzin. Link do AMP Cache:
https://example-com.<cache.updateCacheApiDomainSuffix>/r/s/example.com/.well-known/amphtml/apikey.pub