Amazon S3 - HTTPS/SSL - 有可能吗? [关闭]
Posted
技术标签:
【中文标题】Amazon S3 - HTTPS/SSL - 有可能吗? [关闭]【英文标题】:Amazon S3 - HTTPS/SSL - Is it possible? [closed] 【发布时间】:2011-03-04 03:46:51 【问题描述】:我看到了其他一些关于此的问题,但没有任何真正的答案或信息(或者看起来如此)。
我这里有一张图片: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 不起作用。
我该如何进行这项工作?
【问题讨论】:
您的问题并没有准确解释您想要做什么。你想让http请求重定向到https吗?如果是这样,您应该改写问题的标题以更好地说明这一事实。这将帮助更多人找到并回答这个问题。 不,我想安全地访问图像。这可能吗? 最后一个 URL 对我有用,尽管它带有证书错误,这可能对您来说是个问题 是的,这是个问题。对我来说,首先阻止我看到它,我必须手动验证证书才能看到它。 只是晚了几年,但 ssl cnames 可以与 cloudfront 一起使用。示例 cdn.example.com 指向 randomstring.cloudfront.net,它指向您的 s3 存储桶。 https://cdn.example.com 将提供没有错误的内容,但如果尝试直接浏览 url,则会收到证书警告。 【参考方案1】:这是我从他们的高级服务中得到的回复
你好,
这实际上是 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 家具-retailcatalog-us.s3.amazonaws.com。
希望对您有所帮助。如果您有任何其他问题,请告诉我们。
亚马逊网络服务
不幸的是,您的“友好”CNAME 在验证证书时会导致主机名不匹配,因此您无法真正将其用于安全连接。 S3 的一大缺失功能是接受您的域的自定义证书。
2012 年 10 月 2 日更新
来自@mpoisot:
亚马逊提供的链接不再提及 https。我翻遍了 S3 文档,最后在 Virtual Hosting 页面上找到了一个关于它的小注释:http://docs.amazonwebservices.com/AmazonS3/latest/dev/VirtualHosting.html
2013 年 6 月 17 日更新
来自@Joseph Lust:
刚刚收到!查看并注册邀请:http://aws.amazon.com/cloudfront/custom-ssl-domains
【讨论】:
亚马逊提供的链接不再提及 https。我在 S3 文档中四处寻找,最后在 Virtual Hosting 页面上找到了一个关于它的小注释:docs.amazonwebservices.com/AmazonS3/latest/dev/… 刚刚收到!查看并注册邀请:aws.amazon.com/cloudfront/custom-ssl-domains 请注意,它是每月 600 美元。 :-o 现在可以为 Cloudfront 使用您自己的 SSL 证书,无需额外费用。所以 600 美元/平方米的费用就没有了。 @schickling 同样值得注意的是,CloudFront 通过允许您在 SNI 或 专用 IP SSL 之间进行选择来进行此更改。专用 IP SSL 仍需 600 美元,但 SNI SSL 是免费的。只需确保您的目标浏览器支持 SNI。【参考方案2】:如前所述,这不是直接可行的,但您可以在 EC2 实例上设置 Apache 或 nginx + SSL,将您想要的域命名为该实例,并反向代理到(非自定义域)S3 URL。
【讨论】:
查找 S3 资源的完全限定 SSL 路径的一种方法是使用 AWS 控制台深入了解它。完整路径显示在概览选项卡的底部。【参考方案3】:如果您在默认的 US-EAST-1 区域,payton109 的答案是正确的。如果您的存储桶位于不同的区域,请使用稍微不同的 URL:
https://s3-<region>.amazonaws.com/your.domain.com/some/asset
其中<region>
是存储桶位置名称。例如,如果您的存储桶位于 us-west-2
(俄勒冈)地区,您可以这样做:
https://s3-us-west-2.amazonaws.com/your.domain.com/some/asset
【讨论】:
当使用 CNAME DNS 记录时,它仅与域解析有关,因此您无法重定向到带有路径的 url。另见:***.com/questions/32714351/… 这很好,但它绕过了静态网站托管规则,例如将规则重定向到 index.html 对于没有 devops 或系统管理员团队的 Web 开发人员来说,这是一个完美的解决方案。当然,您的资产不会有一个优雅的域,但是有多少客户在域 url 处检查 html 或底层请求和 tsk tsk tsk?不太多!首先,将您的静态资产从您的应用程序中取出并放到 S3 上是很好的第一步。【参考方案4】:我知道这是事后一年,但使用它可以解决它: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),所以很烂! 这并不糟糕。是的,域不同,但它允许您通过 SSL 在 S3 上的 现有 存储桶上提供内容。如果没有此方案,您必须仅为 SSL 提供的文件创建一个存储桶(因为 S3 通配符 SSL 证书与 files.yourdomain.com.s3.amazonaws.com 不匹配):secure-yourdomain.s3.amazonaws.com .现在您有两个存储桶需要管理,而不是一个。没什么大不了的,但在网络应用程序中,比绝对需要的复杂性更糟糕。 嗨,我实际上是写你放在那里的引用链接“Joonha”的人。不可错过的小宝石是单独使用该技术+“//”作为您的协议开始。在我的电子商务开发业务中,我们使用“//”而不是“https://”或“http://”链接到 URL,因为那时我们不必关心。 这似乎不再起作用了,我收到了 PermanentRedirect 错误。 查看我的新答案,了解为什么这对某些人有效,而对其他人无效。您的存储桶位于哪个区域很重要。以上是关于Amazon S3 - HTTPS/SSL - 有可能吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章