【问题标题】:Are S3 static websites no longer available over HTTPS?S3 静态网站是否不再通过 HTTPS 提供?
【发布时间】:2019-02-12 10:27:37
【问题描述】:

我有一个静态 S3 网站。当我登录时,我可以看到端点是http://www.example.com.s3-website.eu-west-2.amazonaws.com,但我看到answers 声称该站点应该可以通过https://www.example.com.s3-website.eu-west-2.amazonaws.com 的HTTPS 访问。但这不起作用。

AWS 过去是否支持静态站点的 HTTPS,现在已经停止,还是我需要以某种方式启用它?

【问题讨论】:

  • 您需要一个 CloudFront 分配来通过 HTTPS 提供您的 S3 内容。使用 ACM 请求证书。
  • 我已经这样做了。我想在 CloudFront 和 S3 存储桶本身之间进行加密。
  • AFAIK,S3 不支持 custom-domain HTTPS 直接提供静态文件。不过,您可以使用 HTTPS 访问标准 URL。如果您使用的是 S3 API,那么您可以通过 HTTPS 使用它。
  • 但这不是自定义域。这是 S3 分配的域。
  • 我的意思是,如果你有www-example-com(存储桶名称中没有句点),亚马逊的通配符证书就可以了。

标签: amazon-web-services amazon-s3


【解决方案1】:

S3 上的website hosting 部分现在在页面底部有此注释:

Amazon S3 网站终端节点不支持 HTTPS。有关将 HTTPS 与 Amazon S3 存储桶一起使用的信息,请参阅How do I use CloudFront to serve HTTPS requests for my Amazon S3 bucket?Requiring HTTPS for Communication Between CloudFront and Your Amazon S3 Origin

似乎现在唯一的选择是使用 CloudFront。当您只想要一个快速而肮脏的 HTTPS 网站并乐于使用 https://examplebucket.s3-website-us-west-2.amazonaws.com/ 作为 URL 时,这非常令人失望,这可以与通配符 SSL 证书一起使用。

【讨论】:

    【解决方案2】:

    您不能在存储桶名称中使用句点。如果您确实使用句点,亚马逊的通配符证书将不起作用。

    引用BucketRestrictions 文档:

    当您使用具有安全套接字层 (SSL) 的虚拟托管式存储桶时,SSL 通配符证书仅匹配不包含句点的存储桶。要解决此问题,请使用 HTTP 或编写您自己的证书验证逻辑。我们建议您在使用虚拟托管式存储桶时不要在存储桶名称中使用句点(“.”)。

    【讨论】:

    • 这与证书的有效性无关。当我尝试向存储桶发出 https 请求时,我没有得到任何响应。
    • 当我说它不起作用时,我并不是在谈论有效性。但你是对的,我应该改写它。
    【解决方案3】:

    所以答案是否定的,不可能像我尝试的那样直接将 HTTPS 用于 S3 静态网站。来自the docs

    请注意以下关于在源是 Amazon S3 时使用 HTTPS 桶:

    * If your Amazon S3 bucket is configured as a website endpoint, you can't 
    configure CloudFront to use HTTPS to communicate with your
    origin because Amazon S3 doesn't support HTTPS connections in that
    configuration.
    

    【讨论】:

      猜你喜欢
      • 2020-08-20
      • 2017-03-08
      • 2018-10-22
      • 2018-06-28
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 2019-02-22
      相关资源
      最近更新 更多