适用于Amazon S3静态网站的HTTPS

时间:2013-03-30 14:44:44

标签: ssl https amazon-s3 amazon-cloudfront

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

  1. 为静态网站托管设置一个S3存储桶并将我的网站文件放入其中
  2. 创建了CloudFront分配并将其指向S3存储桶
  3. 在我的域名称服务器中为指向CloudFront存储桶的www子域添加了CNAME记录。
  4. 到目前为止,非常好 - 我可以使用www.example.com地址访问我的网站。但是,我希望该网站仅通过HTTPS提供,我从GoDaddy购买了SSL证书。

    现在,问题是:

    1. 有没有办法在我的S3托管网站上安装此第三方SSL证书?
    2. 使用此设置是否可以通过https重定向进行自动http?

5 个答案:

答案 0 :(得分:61)

是的,截至今天,您可以免费使用。

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

我设法在S3上为我的CloudFront分布式静态站点设置了免费的Class 1 StartSSL证书而没有太多麻烦(参见:CloudFront error when serving over HTTPS using SNI)。

答案 1 :(得分:35)

2016-01-21 AWS推出 AWS证书管理器,这是一项免费服务,允许您颁发SSL证书以与Elastic Load Balancer一起使用云前线(以及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/

答案 2 :(得分:17)

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

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

答案 3 :(得分:3)

对我来说,我必须将一个简单的React网站上传到S3。 正如barbolo所描述的,您需要一个证书才能通过SSL访问网站。 如果您要部署的静态站点足够简单,您可以:

  1. 上传到S3。
  2. 选择“静态网站托管”
  3. 将所有相对链接(转换为css,js等)转换为绝对链接。
  4. e.g。从/css/media.css你应该将它转换为https://s3-region-amazonaws.com/bucket-name/css/media.css(对我来说,我只需要更改index.html中的链接)

    1. 只将桶的内容公开。
    2. 多数民众赞成。您可以通过https访问索引文件。

      简单网站是一个主索引文件指向某些css和js页面的网站。

答案 4 :(得分:0)

除了@ wikichen的回答。

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

  

默认情况下,您可以使用网址中的CloudFront分配域名将您的内容通过HTTPS传送给观看者,例如https://dxxxxx.cloudfront.net/image.jpg

     

如果您想使用自己的域名和自己的SSL证书通过HTTPS提供内容,则可以使用我们的自定义SSL证书支持功能之一。