Caching 如何刷新AMP缓存?

Caching 如何刷新AMP缓存?,caching,refresh,amp-html,accelerated-mobile-page,Caching,Refresh,Amp Html,Accelerated Mobile Page,我有一个带有AMP的文章页面(在子域上)。 现在我在一篇文章中做了一些修改。 如何重新加载此缓存的AMP(子)页 正常版本: AMP版本: 我执行以下步骤: 1。我已在服务器上安装了openssl 2.然后我生成了两个键 openssl genrsa 2048>private-key.pem openssl rsa-in-private-key.pem-pubout>public-key.pem 3.我将公钥复制到子域(=AMP-page)并将其重命名为“apikey.pub” 因此,可以通过浏

我有一个带有AMP的文章页面(在子域上)。 现在我在一篇文章中做了一些修改。 如何重新加载此缓存的AMP(子)页

正常版本:

AMP版本:

我执行以下步骤:

1。我已在服务器上安装了openssl

2.然后我生成了两个键

openssl genrsa 2048>private-key.pem

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

3.我将公钥复制到子域(=AMP-page)并将其重命名为“apikey.pub”

因此,可以通过浏览器访问公钥:

4.然后我创建了更新缓存请求,如下所示:

获取带有“日期+%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

我得到以下错误:
==>验证失败(!!!)

在步骤3中,公钥的放置错误。正确的答案是:
https://amp.example.com/.well-known/amphtml/apikey.pub

验证的问题似乎出现在步骤4,因为有两个命令在单行上被调用并生成无效输出

解决方案是将其分为两部分:

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
或在两个命令之间添加一个(&D):

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生成URL