我有一个简单的静态网站,我通过亚马逊的Cloudfront提供。没有什么重要的,所以它不需要HTTPS,而且我不想经历为我的网站设置SSL证书的麻烦和成本,我很高兴如果通过HTTPS发送请求被满足服务不可用或任何其他错误消息被认为是合适的。相反,Cloudfront会尝试使用自己的证书为HTTPS页面提供服务,因此由于证书/域名不匹配,会将浏览器中的站点标记为“不受信任”。
是否有某种方法可以在Cloudfront中完全禁用HTTPS,或者在使用Cloudfront的同时优雅地回退到HTTP?
答案 0 :(得分:2)
您可以为每个CloudFront来源单独指定是使用原始协议政策设置来使用HTTP
和HTTPS
还是仅使用HTTP
。< / p>
<强>协议强>
CloudFront将HTTP或HTTPS请求转发到源服务器 以下内容:
最终用户发送到CloudFront的请求的协议, HTTP或HTTPS。
CloudFront中原始协议政策字段的值 控制台,或者,如果您正在使用CloudFront API,那么
OriginProtocolPolicy
复杂类型中的DistributionConfig
元素。 在CloudFront控制台中,选项为仅HTTP 和匹配查看器。如果您指定仅限HTTP ,CloudFront会将请求转发给来源 服务器只使用HTTP协议,无论协议在哪里 最终用户请求。
答案 1 :(得分:2)
我遇到了同样的问题。
亚马逊现在免费提供SSL证书,但有以下限制:
在我的情况下,我只是使用它,即使我从来不需要它。它比在浏览器上使用“不受信任的连接”要好得多。
我找不到任何正常失败的机制或完全阻止HTTPS。
答案 2 :(得分:1)
对于那些使用AWS Web控制台设置其Cloudfront的用户,请遵循以下路径来更改“查看器协议策略”:
AWS Web控制台> Cloudfront> Cloudfront分发> [选择您的分发]> [行为]选项卡> [选择您的缓存行为]>编辑>查看器协议策略>设置“ HTTP和HTTPS”
答案 3 :(得分:0)
请注意,如果您希望将其他域名添加到分配中,
似乎自this release(2019年4月8日)向分配中添加备用域名时,您还必须将SSL / TLS证书附加到覆盖该备用域名的该分配中。
因此,在这种情况下,您将无法禁用HTTPS。
(*)注意:我个人没有看到源协议策略中提到的HTTP Only
选项-尽管也提到了here。