Как обновить AMP Cache? - PullRequest
0 голосов
/ 28 мая 2018

У меня есть страница статьи с AMP (на поддомене).Теперь я внес несколько изменений в статью.Как я могу перезагрузить эту кэшированную AMP (под-) страницу?

Обычная версия: https://www.example.com/this-is-a-article-999

AMP-версия: https://amp.example.com/this-is-a-article-999

я делаю следующие шаги:

1. Я установил openssl на свой сервер

2. Затем я сгенерировал два ключа

openssl genrsa 2048> private-key.pem

openssl rsa -in private-key.pem -pubout>public-key.pem

3. Я скопировал открытый ключ в поддомен (= страница AMP) и переименовал его в «apikey.pub»

Таким образом, открытый ключ доступен через браузер: https://amp.example.com/apikey.pub

4. Затем я создал запрос на обновление кэша следующим образом:

получить метку времени с "date +% s "

echo -n> url.txt '/update-cache/c/s/amp.example.com/this-is-a-article-999?amp_action=flush&_ts= 1526997689 'cat url.txt |openssl dgst -sha256 -sign private-key.pem> signature.bin

5. Я использовал открытый ключ для проверки подписи:

openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt

Я получаю следующую ошибку: ==> Ошибка проверки (!!!)

1 Ответ

0 голосов
/ 29 мая 2018

На шаге 3 размещение открытого ключа неверно.Правильнее было бы: https://amp.example.com/.well-known/amphtml/apikey.pub

Кажется, проблема с проверкой возникла на шаге 4, поскольку в одной строке вызывается две команды, которые генерируют неверный вывод.

Решениеэто разбить его на 2 части:

echo -n >url.txt '/update-cache/c/s/amp.example.com/this-is-a-article-999?amp_action=flush&amp_ts=1526997689' 
cat url.txt | openssl dgst -sha256 -sign private-key.pem >signature.bin

или добавить & между двумя командами:

echo -n > url.txt '/update-cache/c/s/amp.example.com/this-is-a-article-999?amp_action=flush&amp_ts=1526997689' & cat url.txt | openssl dgst -sha256 -sign private-key.pem > signature.bin

Полная последовательность становится примерно такой:

openssl genrsa 2048 > private-key.pem
openssl rsa -in private-key.pem -pubout > public-key.pem
echo -n > url.txt '/update-cache/c/s/amp.example.com/this-is-a-article-999?amp_action=flush&amp_ts=1526997689'
cat url.txt | openssl dgst -sha256 -sign private-key.pem > signature.bin
openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt

и вывод выглядит следующим образом:

openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt
Verified OK

Еще одна пара вещей заключается в том, что после генерации подписи ее необходимо добавить к URL-адресу в параметре amp_url_signature, используя сеть -обезопасный вариант Base64 .

Наконец, обязательно проверьте раздел документации параметры в документации и сгенерируйте URL-адреса в соответствии с AMP Cache URL Format .

...