仅通过HTTP提供Cloudfront页面

时间:2013-10-16 11:09:27

标签: ssl amazon-web-services amazon-cloudfront

我有一个简单的静态网站,我通过亚马逊的Cloudfront提供。没有什么重要的,所以它不需要HTTPS,而且我不想经历为我的网站设置SSL证书的麻烦和成本,我很高兴如果通过HTTPS发送请求被满足服务不可用或任何其他错误消息被认为是合适的。相反,Cloudfront会尝试使用自己的证书为HTTPS页面提供服务,因此由于证书/域名不匹配,会将浏览器中的站点标记为“不受信任”。

是否有某种方法可以在Cloudfront中完全禁用HTTPS,或者在使用Cloudfront的同时优雅地回退到HTTP?

4 个答案:

答案 0 :(得分:2)

您可以为每个CloudFront来源单独指定是使用原始协议政策设置来使用HTTPHTTPS还是仅使用HTTP。< / p>

  

<强>协议

     

CloudFront将HTTP或HTTPS请求转发到源服务器   以下内容:

     

最终用户发送到CloudFront的请求的协议,   HTTP或HTTPS。

     

CloudFront中原始协议政策字段的值   控制台,或者,如果您正在使用CloudFront API,那么   OriginProtocolPolicy复杂类型中的DistributionConfig元素。   在CloudFront控制台中,选项为仅HTTP 匹配查看器

     

如果您指定仅限HTTP ,CloudFront会将请求转发给来源   服务器只使用HTTP协议,无论协议在哪里   最终用户请求。

来源:AWS CloudFront documentation

答案 1 :(得分:2)

我遇到了同样的问题。

亚马逊现在免费提供SSL证书,但有以下限制:

  • 您只能在CloudFront或ELB中使用它们。
  • 没有服务器名称指示支持的浏览器无法正确呈现您的网站。

在我的情况下,我只是使用它,即使我从来不需要它。它比在浏览器上使用“不受信任的连接”要好得多。

我找不到任何正常失败的机制或完全阻止HTTPS。

请参阅:http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html#CNAMEsAndHTTPS

答案 2 :(得分:1)

对于那些使用AWS Web控制台设置其Cloudfront的用户,请遵循以下路径来更改“查看器协议策略”:

AWS Web控制台> Cloudfront> Cloudfront分发> [选择您的分发]> [行为]选项卡> [选择您的缓存行为]>编辑>查看器协议策略>设置“ HTTP和HTTPS”

答案 3 :(得分:0)

请注意,如果您希望将其他域名添加到分配中,

似乎自this release(2019年4月8日)向分配中添加备用域名时,您还必须将SSL / TLS证书附加到覆盖该备用域名的该分配中

因此,在这种情况下,您将无法禁用HTTPS。


(*)注意:我个人没有看到源协议策略中提到的HTTP Only选项-尽管也提到了here