Cloudfront在提供HTTPS内容方面不一致

时间:2017-10-22 20:38:04

标签: amazon-s3 jekyll amazon-cloudfront amazon-route53

我正在尝试更新我的博客(jacopretorius.net)以使用HTTPS。我没有在实时版本上尝试这个,而是创建了一个暂存版本来测试它 - staging.jacopretorius.net

我的堆栈看起来像这样:

  • 化身
  • Amazon S3
  • Amazon Cloudfront
  • Amazon Route53

我正在使用s3_website gem将生成的Jekyll内容部署到S3存储桶。此gem还会更新关联的Cloudfront分发。我将Cloudfront分发配置为使用我的证书,并将分段URL作为CName添加到分发中。最后,我从Route 53添加了两个别名来指向分配,一个用于IPv4,一个用于IPv5。

除了一些我不理解的奇怪行为外,一切似乎都按预期工作。除了https://staging.jacopretorius.net/archive/之外,所有页面似乎都通过HTTPS提供。我认为这可能是因为网址没有扩展名,但https://staging.jacopretorius.net/about/正在正确投放。这种情况在Chrome和Safari中都会持续发生。

当我使用curl转储标头时,标题似乎表明一个URL(/ about / one)始终是Cloudfront miss。

curl -s -D - https://staging.jacopretorius.net/archive/ -o /dev/null
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 63941
Connection: keep-alive
Date: Sun, 22 Oct 2017 20:11:29 GMT
Last-Modified: Sun, 22 Oct 2017 19:25:42 GMT
ETag: "289e13a6c58bd46dfa55d22cd5e0d1a6"
Server: AmazonS3
Age: 51
X-Cache: Hit from cloudfront
Via: 1.1 0a955f76d9c9f3e49899a6eb7a411ec5.cloudfront.net (CloudFront)
X-Amz-Cf-Id: avt5CRfDiCwEU7TlhvUoCQKsR_jGB_2M_w5zy5mmDoFhogtS4doaQA==
curl -s -D - https://staging.jacopretorius.net/about/ -o /dev/null
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 3757
Connection: keep-alive
Date: Sun, 22 Oct 2017 20:12:24 GMT
Last-Modified: Sun, 22 Oct 2017 19:25:42 GMT
ETag: "fa3a2f263be864012dc5a792d651a46c"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 fc8718fc654846d5ff65e1100874c1fc.cloudfront.net (CloudFront)
X-Amz-Cf-Id: btONKzglg2FkPo9ycWiqQz-aBQ85sugrwTES14TfmedmBQNPPim_Jg==

Cloudfront documentation似乎表明这种网址没有问题,它只是说你应该保持一致(我是)。

我真的很难过。我唯一想到的是,不知何故,Cloudfront正在缓存/ archive / response,并且第一次尝试检索该资产时,它没有得到预期的响应,但是自内容以来这并没有完全加起来是的,它不是HTTPS。

1 个答案:

答案 0 :(得分:3)

我加载https://staging.jacopretorius.net/archive/页面时,它将被视为安全页面。是什么让你说它没有完全安全?如果您输入https://并查看页面内容,则该页面将通过HTTPS提供,但如果您没有看到绿色锁定图标,则浏览器不会认为该页面是完全安全的。您需要点击Chrome浏览器地址栏中的小(i)图标,看看实际问题是什么。如果该页面上的SSL证书存在问题,则浏览器根本不会显示任何页面内容。

我在Chrome中看到一条消息,表示网页上的所有内容都不安全。我认为那是因为页面上的搜索表单有一个http://www.google.com/search目标。尝试将其更改为https://www.google.com/search(并在进行更改后清除/archive/的CloudFront缓存。)