AMP update-cache, приводящий к ошибке 404 или 410 от источника - PullRequest
0 голосов
/ 11 февраля 2020

Я уже пару дней пытаюсь обновить кэшированные страницы AMP на моем сайте, но безрезультатно.

Хотя документация по обновлению кэша существует, вероятно, она была написана инженером Google и, как следствие, не самое легкое чтение.

https://developers.google.com/amp/cache/update-cache

Я следовал инструкциям в меру своих возможностей. Я создал закрытый ключ и ключ publi c. Создал файл signature.bin и проверил его, используя процедуру, описанную в собственной документации Google.

~ $ openssl dgst -sha256 -signature signature.bin -verify publi c -key.pem url.txt

Проверено OK

Publi c -key.pem был переименован в apikey.pub и загружен в следующий каталог:

https://irecover.ca/.well-known/amphtml/apikey.pub

Чтобы проверить, что при копировании не было проблем, я проверил подпись с помощью следующего:

$ openssl dgst -sha256 -signature signature.bin -verify <(curl <a href="https://irecover.ca/.well-known/amphtml/apikey.pub" rel="nofollow noreferrer">https://irecover.ca/.well-known/amphtml/apikey.pub ) url.txt

% Всего% полученных%% Xferd Средняя скорость Время Время Время Текущий

Загрузка загрузки Всего отработанных левых скоростей

100 450 100 450 0 0 2653 0 -: -: - -: -: - -: -: - 2662

Проверено OK

Теперь я конвертирую файл подписи в base64 и замените / на _ и + на -

cat signature.bin | base64> signature.b64

sed 's /// _ / g' signature.b64> signature.b64a

sed 's / + / - / g' signature.b64a> подпись. b64b

sed 's / = // g' signature.b64b> signature.b64 c

cat signature.b64 c | tr -d '\ n'> signature.b64

Я создал скрипт, который делает URL-адрес для кэша обновлений. Он также создает отметку времени прямо в этот момент и использует ее для переменной amp_ts (таким образом, значение amp_ts никогда не истекает более чем на 1 секунду). Затем я добавляю это в конец запроса, который должен быть обработан созданным мной сценарием, так что это выглядит так:

https://irecover-ca.cdn.ampproject.org/update-cache/c/s/irecover.ca/article?amp_action=flush&amp_ts=1581446499&amp_url_signature=KDaKbX0AbVbllwkTpDMFPOsFCRNw2sbk6Vd552bbG3u5QrecEmQ1SoMzmMR7iSXinO7LfM2bRCgJ1aD4y2cCayzrQuICrGz6b_PH7gKpo6tqETz06WmVeiP89xh_pBOu-pyN5rRHf0Pbu8oRkD2lRqgnGrLXDfIrFTTMRmHlO0bsa8GknyXL8RNXxk9ZQaufXAz-UJpoKaZBvT6hJWREAzxoZ-rGnDPVaC3nlBCu3yPorFcTbbr0CBz2svbfGgAYLQl54lLQmUpxI8661AEe1rdOLqAyLIUb4ZiSbO65-PmIkdZWVPFHMdbpSv4GMNdvodleCWBfMAcG2C09v-LR6g

Однако это всегда приводит к одному и тому же коду ошибки от Google.

Недопустимый ключ publi c из-за ошибки при проглатывании: ошибка 404 или 410 от источника

Кто-нибудь знает, что я делаю неправильно?

...