我使用一个 AmazonS3存储桶来上传和下载数据。NET 应用程序。现在我的问题是: 我想使用 SSL 访问我的 S3存储桶。有没有可能为 Amazons3桶实现 SSL?
你可以像这样通过 SSL 访问你的文件:
https://s3.amazonaws.com/bucket_name/images/logo.gif
如果对 bucket 使用自定义域,则可以将 S3和 CloudFront 与您自己的 SSL 证书一起使用(或者通过 Amazon 证书管理器生成一个免费的 SSL 证书) : http://aws.amazon.com/cloudfront/custom-ssl-domains/
自定义域名 SSL 证书今天刚刚以600美元/证书/月的价格添加。请在下面注册您的邀请: Http://aws.amazon.com/cloudfront/custom-ssl-domains/
更新 : SNI 客户免费提供证书 现在可以使用了。比600美元/月便宜得多,而且 XP 几乎被淘汰,它应该可以在大多数用例中很好地工作。
@ skalee AWS 有一个机制来实现海报所要求的,“为 Amazon s3 bucket 实现 SSL”,它被称为 CloudFront。我将“实现”理解为“使用我的 SSL 证书”,而不是“只是在 HTTP URL 上加一个 S,我相信 OP 可能已经猜到了这一点。”。
CloudFront
因为 CloudFront 的成本与 S3完全相同(0.12美元/GB) ,但是在 SSL 方面有很多额外的特性,并且允许您在没有额外成本的情况下添加自己的 SNI 证书,所以显然可以在您的域上“实现 SSL”。
如果你真的需要它,考虑重定向。
例如,在请求到 assets.my-domain.example.com/path/to/file时,您可以执行到 my-bucket-name.s3.amazonaws.com/path/to/file或 s3.amazonaws.com/my-bucket-name/path/to/file的301或302重定向(请记住,在第一种情况下,my-bucket-name不能包含任何点,否则它将不符合 S3证书中规定的 *.s3.amazonaws.com, s3.amazonaws.com)。
assets.my-domain.example.com/path/to/file
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
没有经过测试,但我相信它会起作用的。但是,我看不到什么陷阱。
第一个很明显,是获得这个重定向的额外请求。我怀疑你是否可以使用域名注册商提供的重定向服务器ーー你必须在那里上传合适的证书ーー所以你必须使用自己的服务器。
第二个问题是,您可以在页面源代码中使用带有域名的 url,但是当例如用户在单独的选项卡中打开图片时,地址栏将显示目标 url。
我发现你可以通过云耀斑服务很容易地做到这一点。
建立一个存储桶,启用存储桶上的网络托管,并通过 Cloudflare 将所需的 CNAME 指向该端点... ... 当然还要支付服务费... ... 但是5-20美元 VS 600美元更容易消化。
详情如下: Https://www.engaging.io/easy-way-to-configure-ssl-for-amazon-s3-bucket-via-cloudflare/
这不可能直接使用 S3,但是您可以从桶中创建一个 Cloud Front 发行版。然后转到证书管理器并请求证书。亚马逊免费提供。一个你已经成功确认认证,分配到您的云前线发行。还要记住设置将 http 重定向到 https 的规则。
我在 Amazon S3上托管了几个静态网站,比如我的个人网站,因为它们有 Cloud Front 发行版,所以我给它们分配了 SSL 证书。
如前所述,您不能为 S3存储桶创建免费证书。但是,您可以创建 Cloud Front 发行版,然后为 Cloud Front 分配证书。请求域的证书,然后在 Cloud Front 设置中将其分配给 Cloud Front 发行版。我使用这种方法通过 SSL 服务静态网站,以及服务静态文件。
对于静态网站创建亚马逊是去的地方。使用 SSL 获得一个静态网站确实是可以负担得起的。