Cloudflare-S3 HTTPS握手

时间:2018-12-22 12:34:20

标签: amazon-s3 https cdn cloudflare

我已将静态文件上传到S3。为了将我的文件缓存到CDN(并降低AWS成本+更好的SEO结果),我使用的是cloudflare。

我的存储桶名称为cdn.mydomainname.com

我的Cloudflare CNAME配置为cdn (name)cdn.mydomainname.com.region_code.s3.amazonaws.com(alias)

但是,有一个问题。每当浏览网页时,由于https指出Your connection is not private的错误而导致静态文件无法加载。接受后,我的图像网址cdn.mydomainname.com/image.jpeg被重定向到https://region_code.amazonaws.com/cdn-mydomainname-com/image.jpeg。现在,当我检查网络日志时,Cloudflare不会缓存该图像,正如我在下面的响应标题中所见。

Server: AmazonS3
x-amz-id-2: some_id
x-amz-request-id: some_id

我已经阅读了多个博客,SO问题和文档,但是找不到解决方案。

有些人建议不要将存储区名称用作cdn.mydomainname.com。而是使用类似cdn-mydomainname-com的东西。

现在,我的Cloudflare CNAME配置为cdn (name)cdn-mydomainname-com.region_code.s3.amazonaws.com(alias)

它有2个问题。

1)我的网址不会很漂亮(https://region_code.amazonaws.com/cdn-mydomainname-com/image.jpeg)。这会对我的SEO产生负面影响。

2)它再次显示了与前面所示相同的响应标头。

Server: AmazonS3
x-amz-id-2: some_id
x-amz-request-id: some_id

可以采取什么措施来遏制这种情况?我在哪里错

更新

我试图在服务器上托管一个静态文件,并且该文件由Cloudflare提供,如响应头(CF-CACHE-STATUS:HIT)中所述

1 个答案:

答案 0 :(得分:0)

尝试将CloudFlare的CNAME指向

cdn-mydomainname-com.region_code.s3.amazonaws.com

,但将您的存储桶名称保留为

cdn.mydomainname.com

并访问

cdn.mydomainname.com/myimage

S3将在查找存储桶时使用CloudFlare发送的主机名,而不是子域。实际上,您可以将任何子域放入所需的CloudFlare中。重要的是子域中没有点。 S3提交给CloudFlare的证书是形式为通配符的证书

*.region_code.s3.amazonasw.com

因此CloudFlare将接受它对

有效

cdn-mydomainname-com.region_code.s3.amazonaws.com

,图像将根据需要通过CloudFlare。