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

其中&lt;region&gt; 是存储桶位置名称。例如,如果您的存储桶位于 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 - 有可能吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

基于浏览器的上传到 Amazon S3?

无法安装 Net::Amazon::S3

您如何全文搜索 Amazon S3 存储桶?

用于社交网络的 Amazon S3?

Amazon Redshift - 卸载到 S3 - 动态 S3 文件名

linode vs amazon ec2 vs heroku for amazon s3项目