93

我想使用 Amazon S3 和 CloudFront 托管一个仅支持 HTTPS 的静态网站。这是我到目前为止所做的:

  1. 为静态网站托管设置 S3 存储桶并将我的网站文件放入其中
  2. 创建 CloudFront 分配并将其指向 S3 存储桶
  3. www在我的域的名称服务器中为指向 CloudFront 存储桶的子域添加了 CNAME 记录。

到目前为止,一切都很好 - 我可以使用该www.example.com地址访问我的网站。但是,我希望该站点只能通过 HTTPS 访问,为此我从 GoDaddy 购买了 SSL 证书。

现在,问题是:

  1. 有没有办法在我的 S3 托管网站上安装此第三方 SSL 证书?
  2. 有没有办法通过此设置自动将 http 重定向到 https ?
4

5 回答 5

63

是的,从今天开始,您可以免费进行。

您现在可以在 CloudFront 上使用 HTTPS 和 CNAME,因为它现在支持使用服务器名称指示 (SNI) 的自定义 SSL 证书:http: //aws.typepad.com/aws/2014/03/server-name-indication-sni-and- http-重定向-for-amazon-cloudfront.html

我设法在 S3 上为我的 CloudFront 分布式静态站点设置了免费的 1 类 StartSSL 证书,没有太多麻烦(请参阅:使用 SNI 通过 HTTPS 提供服务时出现 CloudFront 错误)。

于 2014-03-10T21:49:45.623 回答
36

2016 年 1 月 21 日,AWS 推出了AWS Certificate Manager,这是一项免费服务,允许您颁发 SSL 证书以用于 Elastic Load Balancer 和 Cloud Front(以及 S3)。

您可以在以下网址了解更多信息: https ://aws.amazon.com/certificate-manager/

您可以查看如何使用 AWS 提供的免费 SSL 部署您的 S3 + Cloudfront 网站: https ://aws.amazon.com/blogs/aws/new-aws-certificate-manager-deploy-ssltls-based-apps-on -aws/

于 2016-01-29T13:05:22.667 回答
17

截至今天,Cloudfront 提供自定义 SSL:http ://aws.amazon.com/cloudfront/pricing/

请记住,他们每月收费 600 美元。更多详细信息请参见上面的链接。

于 2013-06-13T03:05:11.577 回答
3

For me I had to upload a simple React website to S3. As barbolo describes you need a certificate to access site through SSL. If the static site that you want to deploy is simple enough you can:

  1. Upload to S3.
  2. Do not select "Static Website Hosting"
  3. Convert all relative links (to css, js, etc) to absolute links.

e.g. from /css/media.css you should convert it to https://s3-region-amazonaws.com/bucket-name/css/media.css (for me I had to change only links in index.html)

  1. Make only the contents of bucket public.

Thats it. You can access the index file through https.

A Simple site is a site with a main index.html file that points to some css and js pages.

于 2018-05-04T03:34:53.793 回答
0

除了@wikichen 的回答。

来自:https ://aws.amazon.com/cloudfront/custom-ssl-domains/

By default, you can deliver your content to viewers over HTTPS by using your CloudFront distribution domain name in your URLs, for example, https://dxxxxx.cloudfront.net/image.jpg.

If you want to deliver your content over HTTPS using your own domain name and your own SSL certificate, you can use one of our Custom SSL certificate support features.

于 2016-03-31T06:48:25.293 回答