SafeLine
SafeLine copied to clipboard
[建议] 强制 HTTPS 功能建议基于站点开启
背景与遇到的问题
v3.0.0 版本新增的“强制HTTPS”居于全局设置。所有生效。
当有的站点需要HTTP和HTTPS两种方式都支持的情况,显然这个不能满足需求。
建议的解决方案
建议将“强制HTTPS”开关设置在站点中;
且无需端口为HTTP/80,HTTPS/443才生效;只要这个站点存在http和https两种类型,这个强制HTTPS就会生效。
我们这些都考虑过,恰好就是对师傅说的几个问题的背景有疑问:
“当有的站点需要HTTP和HTTPS两种方式都支持的情况,显然这个不能满足需求。”
什么时候需要呢?HTTP 明文是不安全的,如果网站只有 HTTP 服务就算了,可能是内网服务。但是如果明明已经有一个安全的 HTTPS 端口了,为啥还要支持 HTTP 呢。
“且无需端口为HTTP/80,HTTPS/443才生效;只要这个站点存在http和https两种类型,这个强制HTTPS就会生效。”
啥情况需要其他端口跳转呢?体感 80 -> 888/ssl、8080 -> 8888/ssl 这种非标端口的跳转好像都没见过,应该是因为本身就不太符合一般网站用户的使用逻辑。
对于一些不是面向大众的站点,比如部分员工才会用到的OA、ERP等系统。会有客户将其修改为非443端口; 这个时候是不是可以访问这个域名http/80,将其跳转至https/8443;
非标准端口的话,也不会监听 80 端口作为 HTTP 吧?这种非标准端口我理解都是只配置一个端口允许访问即可,而且如果有 HTTP 请求到了这个 HTTPS 端口,通过 error 497 也能跳转到 HTTPS。但是访问 80 跳转到 8443 这种端口的真实场景我还是比较存疑,真的会有么?留着看看点赞吧
额外补充一点小发现,雷池社区版很多功能都是直接做成全局的,最开始都会有师傅说是不是支持站点级的比较好,但是实际上又看不到真实需求场景。很多场景都是臆想出来的,实际上并不需要,或者说即使真的需要,也可以自己通过各种方式搞定。比如群也看到有师傅需要 location 级别的站点配置,实现就更复杂了。实际上可以通过二级、三级域名等方式来实现相同的效果,而且技术方案上更灵活和解耦。
实现成站点级的至少有几个问题:
- 配置的交互和页面设计都会更复杂了。编辑的时候每个站点都要改,漏了就不生效,如果有几十个站点要配置?配置页面多了很多按钮(就现在仅有的几个输入框已经很多师傅不知道如何配置了),可能很多师傅又用不到,看到又会有疑问说这些都是啥,增加认知负担,也会觉得整个系统很复杂。希望能尽量 keep simple,如果用户没有必要去做某件事,就不需要让他们看见这个配置就好了,类似隐藏式设计感觉更好一些。
- 技术实现更复杂,毕竟细粒度不一样,精细化控制就需要更精细化的代码区分。
我理解社区版更多是提供标准化的解决方案,而不是特别小众的定制化需求满足,很多时候用户希望某个具体的页面配置,只是根据以往的认知惯性,陷入了 X-Y 问题 里面。忽略了其实有更好的解决方案,或者之前自己的配置是不正确的(但是也生效了)。当然我们自己也无法判断是否小众,所以通过大家对 GitHub issue 的点赞就能更清晰地知道这些需求是真实存在的,还是少数人才有的,甚至是个人师傅臆想的 :smile:
对于一些不是面向大众的站点,比如部分员工才会用到的OA、ERP等系统。会有客户将其修改为非443端口; 这个时候是不是可以访问这个域名http/80,将其跳转至https/8443; @luweijun1992
如果把 8443/ssl 服务,配置成 80 可以直接跳转,那直接访问域名就可以打开。这样听上去其实和直接面向大众、配到 443 上效果差不多了。
我们内部想了类似几个场景和需求,结论是好像都说不太通。确实很多企业级 WAF 都支持按站点配置、自定义端口转发,但是那样界面也会比较复杂。先收集下大家意见吧,看看有没啥确实需要分开配的场景。
对于一些不是面向大众的站点,比如部分员工才会用到的OA、ERP等系统。会有客户将其修改为非443端口; 这个时候是不是可以访问这个域名http/80,将其跳转至https/8443; @luweijun1992
如果把 8443/ssl 服务,配置成 80 可以直接跳转,那直接访问域名就可以打开。这样听上去其实和直接面向大众、配到 443 上效果差不多了。
我们内部想了类似几个场景和需求,结论是好像都说不太通。确实很多企业级 WAF 都支持按站点配置、自定义端口转发,但是那样界面也会比较复杂。先收集下大家意见吧,看看有没啥确实需要分开配的场景。
对于一些非官网的业务系统,软件厂商会使用非443,而使用8443、9443等端口的情况。
这个时候用户去访问就要输入域名+端口才能访问到。
管理员就会配置访问域名,跳转至非443端口。
如下:
@luweijun1992 对于一些不是面向大众的站点,比如部分员工才会用到的OA、ERP等系统。会有客户将其修改为非443端口; 这个时候是不是可以访问这个域名http/80,将其跳转至https/8443;
@Lorna0 如果把 8443/ssl 服务,配置成 80 可以直接跳转,那直接访问域名就可以打开。这样听上去其实和直接面向大众、配到 443 上效果差不多了。
我们内部想了类似几个场景和需求,结论是好像都说不太通。确实很多企业级 WAF 都支持按站点配置、自定义端口转发,但是那样界面也会比较复杂。先收集下大家意见吧,看看有没啥确实需要分开配的场景。
@luweijun1992 对于一些非官网的业务系统,软件厂商会使用非443,而使用8443、9443等端口的情况。 这个时候用户去访问就要输入域名+端口才能访问到。 管理员就会配置访问域名,跳转至非443端口。 如下:
这种情况下,既然前面准备加个 waf 代理防护,那其实可以直接配置成 80、443/ssl ,不需要暴露非标端口了。类似这样:
server {
listen 80;
server_name box.example.com;
location / {
return 301 https://$host:443;
}
}
server {
listen 443 ssl;
server_name box.example.com;
# 中间略
# 反向代理
location / {
proxy_pass http://127.0.0.1:6443;
}
}
这种是可以在目前的界面上配出来的。
这种需求我们也存在。。
@zhuanmentiwen 这种需求我们也存在。。
师傅有需求可以分享一下具体背景。目前讨论还没有找到这个需求的实际应用场景。
对于一些不是面向大众的站点,比如部分员工才会用到的OA、ERP等系统。会有客户将其修改为非443端口; 这个时候是不是可以访问这个域名http/80,将其跳转至https/8443; @luweijun1992
如果把 8443/ssl 服务,配置成 80 可以直接跳转,那直接访问域名就可以打开。这样听上去其实和直接面向大众、配到 443 上效果差不多了。
我们内部想了类似几个场景和需求,结论是好像都说不太通。确实很多企业级 WAF 都支持按站点配置、自定义端口转发,但是那样界面也会比较复杂。先收集下大家意见吧,看看有没啥确实需要分开配的场景。
我实际遇到的一个实际场景是:客户要求站点必须https且不允许开放http,也就是服务器只给开放443端口权限,但是这时候想通过http://ip:443跳转至https://ip:443只能通过error 497来实现,所以我感觉还是能增加这个功能
我实际遇到的一个实际场景是:客户要求站点必须https且不允许开放http,也就是服务器只给开放443端口权限,但是这时候想通过http://ip:443跳转至https://ip:443只能通过error 497来实现,所以我感觉还是能增加这个功能
ERROR 497 现在是每个 https 端口都默认开启了,这样确实方便点。
这种需求我们也存在,不同的业务站,有需要保留HTTP HTTPS 都可用,有的需要强制HTTPS
对单站点配置强制https还是很有必要的,毕竟不是所有网站都需要配置https。我有些场景还需要对单站点进行强制http的场景呢
对单站点配置强制https还是很有必要的,毕竟不是所有网站都需要配置https。我有些场景还需要对单站点进行强制http的场景呢
想用 http 的话就加个 http 端口就行,这个配置不同时添加 80、443/ssl 的话是不会强制 https 的
有的应用系统,我也想上全站HTTPS,但个别接口就只支持HTTP,而且这个接口地址在前端还写死了……你让我改这系统我也不好去改。 按照目前雷池的策略,要不这接口别接到WAF,要不就整个雷池上的站点都别开强制HTTPS。 一些老旧系统是这样的。
强制 HTTPS 功能分站点开启已经在 6.7 版本中更新了:
不过还是上面一开始说的,这个设置本身就只在 “这个站点上同时添加了 80 和 443/ssl” 的情况下才会跳转,对于这个 issue 中的几乎全部用户反馈来说,其实是根本不需要分站点设置的 :D
有的应用系统,我也想上全站HTTPS,但个别接口就只支持HTTP,而且这个接口地址在前端还写死了……你让我改这系统我也不好去改。 按照目前雷池的策略,要不这接口别接到WAF,要不就整个雷池上的站点都别开强制HTTPS。 一些老旧系统是这样的。
新版本支持了。不过就算雷池支持了也容易出问题,因为好多浏览器都已经阻止 HTTPS 网站中访问 HTTP 资源了,有能力还是尽快迁移吧。