Amazon S3 - HTTPS/SSL - 有可能吗?

Ker*_*nes 174 ssl https amazon-s3 amazon-web-services

我没有任何真实的答案或信息(或者它出现了),我看到了一些其他问题.

我在这里有一张图片:http:
//furniture.retailcatalog.us/products/2061/6262u9665.jpg

哪个重定向到:http:
//furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

我需要它(https):https:
//furniture.retailcatalog.us/products/2061/6262u9665.jpg

所以我在retailcatalog.us上安装了一个通配符ssl(我们有其他子域名),但它没有用.我去检查
https://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

它无法正常工作,这意味着在Amazon S3网站上,https无效.

我该如何工作?

Ker*_*nes 180

这是我从他们的高级服务中得到的回复

你好,

这实际上是SSL验证包含句点'.',>字符的名称的方式的问题.我们在这里记录了这种行为:

http://docs.amazonwebservices.com/AmazonS3/latest/dev/BucketRestrictions.html

唯一的直接解决方法是使用不包含该字符的存储桶名称.您可以使用名为"furniture-retailcatalog-us"的存储桶.这将允许您使用HTTPS

https://furniture-retailcatalog-us.s3.amazonaws.com/

当然,您可以放置​​CNAME DNS记录以使其更友好.例如,

images-furniture.retailcatalog.us IN CNAME furniture-retailcatalog-us.s3.amazonaws.com.

希望有所帮助.如果您有任何其他问题,请告诉我们.

亚马逊网络服务

不幸的是,您的"友好"CNAME在验证证书时会导致主机名不匹配,因此您无法真正将其用于安全连接.S3的一个重要缺失功能是接受域的自定义证书.


更新10/2/2012

来自@mpoisot:

亚马逊提供的链接不再说任何有关https的内容.我在S3文档中搜索过,最后在虚拟主机页面上找到了一个关于它的小注释:http://docs.amazonwebservices.com/AmazonS3/latest/dev/VirtualHosting.html


更新2013年6月17日

来自@Joseph Lust:

刚搞定!查看并注册邀请:http://aws.amazon.com/cloudfront/custom-ssl-domains

  • +1以跟进您的胜利问题 - 在S3文档中容易忽略的非常有用的信息! (22认同)
  • 现在可以使用您自己的Cloudfront SSL证书,而无需额外费用**.因此600美元/米的费用已经消失. (8认同)
  • 请注意,每月600美元.:-o (4认同)
  • @schickling同样值得注意的是,CloudFront通过允许您在**SNI**或**专用IP**SSL之间进行选择来实现此更改.专用IP SSL继续花费600美元,但SNI SSL是免费的.只需确保您定位的浏览器支持SNI即可. (4认同)

小智 110

我知道它事后一年,但使用它解决了它:https://s3.amazonaws.com/furniture.retailcatalog.us/products/2061/6262u9665.jpg

我在另一个网站上看到了这个(http://joonhachu.blogspot.com/2010/09/helpful-tip-for-amazon-s3-urls-for-ssl.html).

  • 似乎并没有解决它.它仍然使用亚马逊域名(s3.amazonaws.com),所以它很糟糕! (18认同)
  • 这不太糟糕.是的,域名不同,但它允许您在S3上的*现有*存储桶上通过SSL提供内容.如果没有此方案,则必须为SSL服务文件创建一个存储桶(因为S3通配符SSL证书与files.yourdomain.com.s3.amazonaws.com不匹配):secure-yourdomain.s3.amazonaws.com .现在你有两个桶来管理而不是一个.没什么大不了的,但在网络应用程序中,比绝对需要的复杂程度更糟糕. (14认同)
  • 嗨,我实际上是那个写了"Joonha"的引用链接的人.不容错过的小宝石就是使用这种技术+"//"作为你的协议开始.在我的电子商务开发业务中,我们使用"//"而不是"https://或"http://"链接到URL,因为我们从来不必关心这一点. (7认同)
  • 请参阅我的新答案,了解为什么这适用于某些人而非其他人.你的水桶在哪个区域都很重要. (5认同)
  • 似乎这不再起作用了,我收到了一个PermanentRedirect错误. (4认同)
  • @Paulo - 它仍然有效,我们一直使用它. (2认同)

Nat*_*ate 45

如果您处于默认的US-EAST-1区域,payton109的答案是正确的.如果您的存储桶位于其他区域,请使用稍微不同的网址:

https://s3-<region>.amazonaws.com/your.domain.com/some/asset
Run Code Online (Sandbox Code Playgroud)

<region>存储桶位置名称在哪里.例如,如果您的存储桶位于us-west-2(俄勒冈州)区域,则可以执行以下操作:

https://s3-us-west-2.amazonaws.com/your.domain.com/some/asset
Run Code Online (Sandbox Code Playgroud)

  • 这很好,但它绕过了静态网站托管规则,例如将规则重定向到index.html (2认同)

Mar*_*ang 8

如前所述,它不是直接可能的,但您可以在EC2实例上设置Apache或nginx + SSL,将CNAME设置为所需的域,并反向代理到(非自定义域)S3 URL.