【问题标题】:Cloudfront is inconsistent in serving HTTPS contentCloudfront 在提供 HTTPS 内容方面不一致
【发布时间】:2017-10-23 05:22:51
【问题描述】:

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

我的堆栈如下所示:

  • 杰基尔
  • 亚马逊 S3
  • 亚马逊云端
  • 亚马逊 Route53

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

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

当我使用 curl 转储标头时,标头似乎表明一个 URL(/about/ 之一)始终是 Cloudfront 未命中。

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似乎表明这种URL没有问题,它只是说你应该保持一致(我就是)。

我真的很难过。我唯一的想法是,Cloudfront 以某种方式缓存 /archive/ 响应,并且它第一次尝试检索该资产时没有得到预期的响应,但由于内容在那里,这并没有完全加起来,它是只是不是 HTTPS。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 马克!你是我的英雄!谢谢! (我会说 Chrome 在这种情况下并不是很有帮助 - 它没有告诉我为什么它认为该网站不安全,而 curl 只是噪音。多么令人困惑!)
    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 2020-03-20
    • 2013-11-05
    • 1970-01-01
    • 2020-12-14
    相关资源
    最近更新 更多