加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – CloudFlare SSL与ASP.NET MVC RequireHttps的兼

发布时间:2020-12-15 19:42:48 所属栏目:asp.Net 来源:网络整理
导读:我在AppHarbor(使用Amazon EC2)上托管ASP.NET MVC 4站点,我正在使用CloudFlare进行灵活SSL.在尝试使用RequireHttps时,我遇到了重定向循环(310)的问题.问题是,与EC2一样,CloudFlare会在将请求转发到服务器之前终止SSL.但是,虽然Amazon设置了X-Forwarded-Proto
我在AppHarbor(使用Amazon EC2)上托管ASP.NET MVC 4站点,我正在使用CloudFlare进行灵活SSL.在尝试使用RequireHttps时,我遇到了重定向循环(310)的问题.问题是,与EC2一样,CloudFlare会在将请求转发到服务器之前终止SSL.但是,虽然Amazon设置了X-Forwarded-Proto标头,以便您可以使用自定义过滤器处理请求,但CloudFlare似乎没有.或者如果他们这样做,我不知道他们是怎么做的,因为我不能拦截那个级别的流量.我已经尝试过Amazon EC2的解决方案,但它们似乎对CloudFlare没有帮助.

有没有人遇到过这个问题,或者对CloudFlare有足够的了解?

解决方法

AppHarbor的负载平衡器故意将X-Forwarded-Proto标头覆盖到请求的实际方案.

请注意,虽然CloudFlare灵活的SSL选项可能会增加更多安全性,但仍然有未加密的流量通过公共互联网从CloudFlare传输到AppHarbor.这可以说除了外观和减少攻击向量的数量(如用户本地网络上的数据包嗅探)之外的其他任何东西都无法实现SSL的目的 – 即它对用户看起来可能“专业”,但它实际上仍然是不安全的.

这不太理想,特别是因为AppHarbor既支持安装自己的证书,也包括开箱即用的SSL. CloudFlare还建议在原始服务器/服务支持SSL的情况下使用“完整SSL”.所以你有几个选择:

>继续使用不安全的“灵活SSL”选项,但不应检查自定义RequireHttps过滤器中的X-Forwarded-Proto标头,而应检查CF-Visitor标头的scheme属性. this discussion还有更多细节.
>使用“完整SSL”并将CloudFlare指向您的* .apphb.com主机名.这样您就可以使用AppHarbor应用程序默认启用的免费搭载SSL.您必须覆盖CloudFlare上的Host标头才能使其正常工作和here’s a blog post on how to do that.这当然会使您的应用程序的请求显示为您的* .apphb.com域名 – 例如,如果您自动将请求重定向到一个“规范”的URL或生成绝对URL,您可能需要考虑这一点.
>上传您的证书并向AppHarbor添加自定义主机名.然后在CloudFlare上启用“完整SSL”.这样主机头将保持不变,您的应用程序将继续工作而无需任何修改.您可以在this knowledge base article中阅读有关AppHarbor提供的SSL选项的更多信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读