域名解析在 A 服务器,并且配置了 ssl,所有访问都是 https,
然后 nginx 配置了反向代理到 B 服务器,B 是实际的服务器,存储了 前台 dist 文件夹、server.bundle.js 、数据库,
假设 B 服务器上的文件需要保证安全(并配置了其他安全策略,如禁止 root 远程 ssh 、隐藏真实服务器 ip 和版本号),
那么 有必要给 B 服务器单独配置域名 以及 美国服务器ssl 吗?
我主要的疑惑是:B 单独配置了域名以及 ssl 和 直接是 ip 的情况下,安全效果是一样的还是有差异?
谢谢。
理论上只有全 ssl 才安全,因为你不能保证 B 服务器是安全的,ssl 除了防止被监听,还一个比较重要的是防止被劫持。比如 a 访问 b 的过程中,被劫持加料,你 a 服务器的 ssl 也不安全了吧……
一般来说走公网最好配 SSL,当然可以是自签名的(毕竟你也不直接面向用户),只要你能维护好这个“私有 CA”。走内网的话,取决于内网的安全策略,可以配 SSL 也可以不配。
除非是 b 服务器是内网环境,a 代理成外网,这样一定程度上可以保证安全,如果 b 本身就可以外网访问,那就会存在隐患。
内网可以不加 ssl,公网需要加
有过 http 回源被插广告的例子
内网不用。公网需要。就这么简单。
当然有必要,自签名即可。
没十分必要。 配置 ssl 是对外公开访问的,全世界都能看到你的网址,自然也会有人针对劫持。
后端 B 也只有后端 A 访问,iptables 配置好仅允许后端 A 的 ip 访问就足够了
内网没必要加, SSL 会影响访问速度, 得不偿失
好的,明白,两个服务器都是公网。被劫持 这部分还不熟悉。
你不会以为不知道域名就没法劫持吧?
就算不能劫持还不能偷看么?
走公网,多谢提醒,我研究下 自签名。私有 CA 密钥文件 的维护还不熟悉,这两个存放在服务器上,其他 ssl 文件我全部移到本地。
多谢提醒,我是比较担心传输过程被做手脚。
好的,多谢提醒。 我是想把 A 配置成只有域名,没有其他文件, 然后将 前、后端的文件都配置到 B 服务器上,还不确定这样是否合适。
劫持大多数是 DNS 和运营商啊,不是针对某个域名劫持,而是全部。。。
走公网的话,有没有比较好的方案 能更安全的隐藏真实服务器的 ip ? 我目前的思路是 nginx 里配置 proxy .
a-b 是走的内网,看你自己考虑吧,不加的话,就是假设云服务商内网安全,管理安全,不会有内部人员截获、监听。看你自己怎么想
A 反代 B,如果 A 与 B 之间的链路是可以信任的(如完全可控的内网环境),就可以不走 SSL,以降低 CPU 使用率。
如果 A 与 B 之间的链路不可信,那么 SSL 还是不建议省略掉,以避免由于 A->B 请求中可能出现的中间人,造成客户端请求 A 时的结果也不可信
我就是这么干的,挺合适的。
我主要是业务都放到了美国洛杉矶机房,用 cn2 的美西机器反代。
后端 B 也只有后端 A 访问,iptables 配置好后端 B 仅允许后端 A 的 ip 访问就足够了。
两个机器的通讯也没必要上加密自签证书之类的,后端 B 屏蔽除了后端 A 之外的全部访问。把安全重心放到后端 A 上。
我的后端 B 和后端 A 使用 frp stcp 模式组建的内网。frp 的 stcp 的流量已经加密用了自签证书了。
回源开长连接和 SSL session cache 。SSL 主要是握手开销大。连接建立以后用的是对称加密,开销不大。
好的,我得研究下内网方案。
明白,多谢提醒。
后端 B 屏蔽除了后端 A 之外的全部访问 -- 这个思路挺好的,我学习下。