我正在使用 Amazon S3 存储桶通过我的 .NET 应用程序上传和下载数据。现在我的问题是:我想使用 SSL 访问我的 S3 存储桶。是否可以为 Amazon s3 存储桶实施 SSL?
6 回答
您可以通过 SSL 访问您的文件,如下所示:
https://s3.amazonaws.com/bucket_name/images/logo.gif
如果您为存储桶使用自定义域,则可以将 S3 和 CloudFront 与您自己的 SSL 证书一起使用(或通过 Amazon Certificate Manager 生成免费证书):http ://aws.amazon.com/cloudfront/custom-ssl-域名/
今天刚刚添加了自定义域 SSL 证书,价格为 600 美元/证书/月。在下面注册您的邀请:http: //aws.amazon.com/cloudfront/custom-ssl-domains/
更新:现在可以免费获得SNI 客户提供的证书。比 600 美元/月便宜得多,而且 XP 几乎被淘汰,它应该适用于大多数用例。
@skalee AWS 有一种机制来实现海报所要求的,“为 Amazon s3 存储桶实现 SSL”,它被称为CloudFront
. 我将“实现”读作“使用我的 SSL 证书”,而不是“只是在 HTTP URL 上放一个 S,我确信 OP 可以推测出来。
由于 CloudFront 的成本与 S3 完全相同(0.12 美元/GB),但围绕 SSL 具有大量附加功能,并且允许您免费添加自己的 SNI 证书,因此这是在您的域上“实施 SSL”的明显解决方案。
我发现你可以通过 Cloud Flare 服务轻松做到这一点。
设置一个存储桶,在该存储桶上启用虚拟主机,并通过 Cloudflare 将所需的 CNAME 指向该端点……当然还要为服务付费……但是 5-20 美元 VS 600 美元更容易接受。
完整详情: https ://www.engaging.io/easy-way-to-configure-ssl-for-amazon-s3-bucket-via-cloudflare/
如果您真的需要它,请考虑重定向。
例如,根据您的请求,assets.my-domain.example.com/path/to/file
您可以执行 301 或 302 重定向到my-bucket-name.s3.amazonaws.com/path/to/file
or s3.amazonaws.com/my-bucket-name/path/to/file
(请记住,在第一种情况下my-bucket-name
不能包含任何点,否则它将与*.s3.amazonaws.com, s3.amazonaws.com
S3 证书中的说明不匹配)。
未经测试,但我相信它会工作。但是,我看到的问题很少。
第一个非常明显,是获取此重定向的附加请求。而且我怀疑您是否可以使用您的域名注册商提供的重定向服务器-您必须以某种方式在那里上传适当的证书-因此您必须为此使用自己的服务器。
第二个是您可以在页面源代码中使用您的域名的网址,但是当例如用户在单独的选项卡中打开图片时,地址栏将显示目标网址。
无法直接使用 S3,但您可以从存储桶创建 Cloud Front 分配。然后转到证书管理器并请求证书。亚马逊免费提供。您已成功确认认证的那些,将其分配给您的 Cloud Front 分配。还要记住将规则设置为将 http 重定向到 https。
我在 Amazon S3 上托管了几个静态网站,例如我已为其分配 SSL 证书的个人网站,因为它们具有 Cloud Front 分发版。
如前所述,您无法为 S3 存储桶创建免费证书。但是,您可以创建 Cloud Front 分配,然后为 Cloud Front 分配证书。您为您的域请求证书,然后将其分配给 Cloud Front 设置中的 Cloud Front 分发。我已经使用这种方法通过 SSL 提供静态网站以及提供静态文件。
对于静态网站创建,亚马逊是首选。使用 SSL 获得静态网站真的很实惠。