适用于Amazon S3静态网站的HTTPS

我想使用Amazon S3和CloudFront托pipe仅HTTPS的静态网站。 以下是我迄今为止所做的:

  1. 为静态网站托pipe设置一个S3存储桶,并将我的网站文件放入其中
  2. 创build了CloudFront分配并将其指向S3存储桶
  3. 在指向CloudFront存储桶的www子域名的域名服务器中添加了CNAMElogging。

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

现在的问题是:

  1. 有没有办法在S3托pipe的网站上安装这个第三方SSL证书?
  2. 有没有办法有一个自动http httpsredirect与此设置?

是的,截至今天,你可以免费做。

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

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

2016-01-21 AWS推出了AWS Certificate Manager ,这是一项免费服务,允许您发布SSL证书以与Elastic Load Balancer和Cloud Front一起使用(以及S3也一样)。

您可以通过以下url了解更多信息: 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 /

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

请记住,他们正在收取$ 600 /月。 上面的链接的更多细节。

如前所述,这不是直接可能的,但是您可以在EC2实例上设置Apache或nginx + SSL,将CNAME设置为您想要的域,并反向代理为实际的S3或Cloudfront URL。

您不会因此获得Cloudfront的好处,因此您只需提供index.html或同等服务,并使用“真实”(非自定义域名)的Cloudfront URL来获取较重的资产。

除了@维基肯的回答。

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

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

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