我正在使用Amazon S3存储桶通过.NET应用程序上传和下载数据。现在我的问题是:我想使用SSL访问我的S3存储桶。是否可以为Amazon s3存储桶实施SSL?
我正在使用Amazon S3存储桶通过.NET应用程序上传和下载数据。现在我的问题是:我想使用SSL访问我的S3存储桶。是否可以为Amazon s3存储桶实施SSL?
Answers:
您可以通过SSL访问文件,如下所示:
https://s3.amazonaws.com/bucket_name/images/logo.gif
如果将自定义域用于存储桶,则可以将S3和CloudFront与您自己的SSL证书一起使用(或通过Amazon Certificate Manager生成一个免费的证书):http : //aws.amazon.com/cloudfront/custom-ssl-域/
us-west-2
因此主机名实际上是主机名,s3-us-west-2.amazonaws.com
否则会出现错误。
自定义域SSL证书今天才添加,价格为$ 600 /证书/月。在下面注册您的邀请:http : //aws.amazon.com/cloudfront/custom-ssl-domains/
更新:现在免费提供SNI客户提供的证书。它比$ 600 / mo便宜得多,而且XP几乎被淘汰了,它在大多数使用情况下都可以正常工作。
@skalee AWS具有一种实现发布者要求的机制,即“为Amazon s3存储桶实施SSL” CloudFront
。我将“实现”读为“使用我的SSL证书”,而不是“仅在HTTP URL上加上一个S,我确定OP可以认为是S。
由于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
或s3.amazonaws.com/my-bucket-name/path/to/file
(请记住,在第一种情况下my-bucket-name
不能包含任何点,否则它将与*.s3.amazonaws.com, s3.amazonaws.com
S3证书中所述不匹配)。
未经测试,但我相信它会工作。但是,我看不到一些陷阱。
第一个很明显,这是获得此重定向的附加请求。而且我怀疑您是否可以使用域名注册商提供的重定向服务器-您必须以某种方式上载适当的证书-因此您必须为此使用自己的服务器。
第二个是您可以在页面源代码中包含带有域名的URL,但是例如,当用户在单独的选项卡中打开图片时,地址栏将显示目标URL。
无法直接使用S3,但是您可以从存储桶中创建Cloud Front分发。然后转到证书管理器并请求证书。亚马逊免费提供它们。您已经成功确认证书的人员,将其分配给您的Cloud Front发行版。还请记住设置规则以将http重定向到https。
我在Amazon S3上托管了几个静态网站,例如我的个人网站(由于拥有Cloud Front发行版,因此我已为其分配了SSL证书)。
如前所述,您无法为S3存储桶创建免费证书。但是,您可以创建Cloud Front分配,然后为Cloud Front分配证书。您为您的域请求证书,然后将其分配给Cloud Front设置中的Cloud Front分配。我已经使用这种方法通过SSL服务静态网站以及服务静态文件。
对于静态网站创建,Amazon是最佳选择。使用SSL获得静态网站确实可以承受。