Caching AMP更新缓存导致来自原点的404或410错误

Caching AMP更新缓存导致来自原点的404或410错误,caching,amp-html,Caching,Amp Html,几天来,我一直在尝试更新我网站上的AMP缓存页面,但都没有用 虽然存在更新缓存的文档,但它可能是由谷歌工程师编写的,因此不是最容易阅读的 我已经尽我所能地遵循指示。 我已经创建了私钥和公钥。创建了signature.bin并使用Google自己的文档中的过程进行验证 ~$openssl dgst-sha256-signature signature.bin-验证 public-key.pem url.txt 确认正常 public-key.pem已重命名为apikey.pub并上载到以下目录:

几天来,我一直在尝试更新我网站上的AMP缓存页面,但都没有用

虽然存在更新缓存的文档,但它可能是由谷歌工程师编写的,因此不是最容易阅读的

我已经尽我所能地遵循指示。 我已经创建了私钥和公钥。创建了signature.bin并使用Google自己的文档中的过程进行验证

~$openssl dgst-sha256-signature signature.bin-验证 public-key.pem url.txt

确认正常

public-key.pem已重命名为apikey.pub并上载到以下目录:

为了验证复制中没有问题,我使用以下方法检查签名:

$openssl dgst-sha256-signature signature.bin-verify signature.b64

sed's//\ug/signature.b64>signature.b64a

sed's/+/-/g'signature.b64a>signature.b64b

sed's///g'signature.b64b>signature.b64c

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

我制作了一个脚本,为我创建更新缓存url。它还会在该时刻创建一个时间戳,并将其用于amp_ts变量(因此amp_ts的输出时间不会超过1秒)。然后,我将其附加到查询的末尾,该查询将由我编写的脚本进行卷曲,因此看起来是这样的:

然而,这总是导致来自谷歌的相同错误代码

由于摄取错误,公钥无效:来源404或410错误


有人知道我做错了什么吗?

需要检查apikey.pub的可访问性:

  • 移动和桌面用户代理都可以访问
    /.well-known/amftml/apikey.pub
    文件(例如,对于非移动用户,AMP缓存客户端可能会重定向,因此不会重定向)

  • robots.txt中不排除公钥,例如:

  • 公钥响应具有预期的标题(例如内容类型:text/plain):
  • 有了这些东西,我从更新/缓存端点获得了“OK”成功响应


    需要检查apikey.pub可访问性的几件事:

  • 移动和桌面用户代理都可以访问
    /.well-known/amftml/apikey.pub
    文件(例如,对于非移动用户,AMP缓存客户端可能会重定向,因此不会重定向)

  • robots.txt中不排除公钥,例如:

  • 公钥响应具有预期的标题(例如内容类型:text/plain):
  • 有了这些东西,我从更新/缓存端点获得了“OK”成功响应


    他们要求在您提供的文档中的指南部分中提供内容类型为“text/plain”的密钥。也许出于某种原因,这对他们来说很重要。您提供的密钥没有内容类型。您可以在浏览器的“网络”面板中对此进行检查。@JamesGray更改内容类型对您有帮助吗?我和许多在线的人似乎都在为这个话题而挣扎。就我而言,至少我已将内容类型设置为HI,是否已解决?我还对缓存更新感到困惑,并从amphtml repo报告的错误中得到了好主意这里是链接-他们要求在您提供的文档的指南部分中提供内容类型为“text/plain”的密钥。也许出于某种原因,这对他们来说很重要。您提供的密钥没有内容类型。您可以在浏览器的“网络”面板中对此进行检查。@JamesGray更改内容类型对您有帮助吗?我和许多在线的人似乎都在为这个话题而挣扎。就我而言,至少我已将内容类型设置为HI,是否已解决?我也对缓存更新感到困惑,并从amphtml repo报告的错误中得到了好主意,这里是链接-
        User-agent: *
        Allow: /.well-known/amphtml/apikey.pub
    
        curl -I https://amp.example.com/.well-known/amphtml/apikey.pub
        
        HTTP/2 200 
        date: Sun, 26 Jul 2020 23:48:55 GMT
        content-type: text/plain
        vary: Accept-Encoding
        etag: W/"1c3-173478a8840"
        last-modified: Sun, 26 Jul 2020 23:48:55 GMT