大家好,请问 反向代理 后,真实的服务器地址有必要 ssl 吗?

2021-05-19 08:12:19 +08:00
 frontEnd2020

域名解析在 A 服务器,并且配置了 ssl,所有访问都是 https,

然后 nginx 配置了反向代理到 B 服务器,B 是实际的服务器,存储了 前台 dist 文件夹、server.bundle.js 、数据库,

假设 B 服务器上的文件需要保证安全(并配置了其他安全策略,如禁止 root 远程 ssh 、隐藏真实服务器 ip 和版本号),

那么 有必要给 B 服务器单独配置域名 以及 ssl 吗?

我主要的疑惑是:B 单独配置了域名以及 ssl 和 直接是 ip 的情况下,安全效果是一样的还是有差异?

谢谢。

4767 次点击
所在节点    NGINX
29 条回复
Tokin
2021-05-19 08:21:14 +08:00
理论上只有全 ssl 才安全,因为你不能保证 B 服务器是安全的,ssl 除了防止被监听,还一个比较重要的是防止被劫持。比如 a 访问 b 的过程中,被劫持加料,你 a 服务器的 ssl 也不安全了吧……
iBugOne
2021-05-19 08:21:35 +08:00
一般来说走公网最好配 SSL,当然可以是自签名的(毕竟你也不直接面向用户),只要你能维护好这个“私有 CA”。走内网的话,取决于内网的安全策略,可以配 SSL 也可以不配。
Tokin
2021-05-19 08:22:43 +08:00
除非是 b 服务器是内网环境,a 代理成外网,这样一定程度上可以保证安全,如果 b 本身就可以外网访问,那就会存在隐患。
gamexg
2021-05-19 08:30:18 +08:00
内网可以不加 ssl,公网需要加
有过 http 回源被插广告的例子
star7th
2021-05-19 08:44:33 +08:00
内网不用。公网需要。就这么简单。
alect
2021-05-19 08:46:34 +08:00
当然有必要,自签名即可。
yanzhiling2001
2021-05-19 08:47:03 +08:00
没十分必要。 配置 ssl 是对外公开访问的,全世界都能看到你的网址,自然也会有人针对劫持。

后端 B 也只有后端 A 访问,iptables 配置好仅允许后端 A 的 ip 访问就足够了
yitingbai
2021-05-19 08:49:24 +08:00
内网没必要加, SSL 会影响访问速度, 得不偿失
frontEnd2020
2021-05-19 09:04:07 +08:00
@Tokin 好的,明白,两个服务器都是公网。被劫持 这部分还不熟悉。
ryd994
2021-05-19 09:12:54 +08:00
@yanzhiling2001 你不会以为不知道域名就没法劫持吧?
就算不能劫持还不能偷看么?
frontEnd2020
2021-05-19 09:14:07 +08:00
@iBugOne 走公网,多谢提醒,我研究下 自签名。私有 CA 密钥文件 的维护还不熟悉,这两个存放在服务器上,其他 ssl 文件我全部移到本地。
frontEnd2020
2021-05-19 09:18:00 +08:00
@gamexg 多谢提醒,我是比较担心传输过程被做手脚。
frontEnd2020
2021-05-19 09:23:47 +08:00
@yanzhiling2001 好的,多谢提醒。 我是想把 A 配置成只有域名,没有其他文件, 然后将 前、后端的文件都配置到 B 服务器上,还不确定这样是否合适。
lscho
2021-05-19 09:25:17 +08:00
@yanzhiling2001 劫持大多数是 DNS 和运营商啊,不是针对某个域名劫持,而是全部。。。
frontEnd2020
2021-05-19 09:30:08 +08:00
@ryd994 走公网的话,有没有比较好的方案 能更安全的隐藏真实服务器的 ip ? 我目前的思路是 nginx 里配置 proxy .
brader
2021-05-19 09:34:33 +08:00
a-b 是走的内网,看你自己考虑吧,不加的话,就是假设云服务商内网安全,管理安全,不会有内部人员截获、监听。看你自己怎么想
gam2046
2021-05-19 09:36:59 +08:00
A 反代 B,如果 A 与 B 之间的链路是可以信任的(如完全可控的内网环境),就可以不走 SSL,以降低 CPU 使用率。
如果 A 与 B 之间的链路不可信,那么 SSL 还是不建议省略掉,以避免由于 A->B 请求中可能出现的中间人,造成客户端请求 A 时的结果也不可信
yanzhiling2001
2021-05-19 10:01:14 +08:00
@frontEnd2020 我就是这么干的,挺合适的。

我主要是业务都放到了美国洛杉矶机房,用 cn2 的美西机器反代。


后端 B 也只有后端 A 访问,iptables 配置好后端 B 仅允许后端 A 的 ip 访问就足够了。

两个机器的通讯也没必要上加密自签证书之类的,后端 B 屏蔽除了后端 A 之外的全部访问。把安全重心放到后端 A 上。
yanzhiling2001
2021-05-19 10:02:52 +08:00
我的后端 B 和后端 A 使用 frp stcp 模式组建的内网。frp 的 stcp 的流量已经加密用了自签证书了。
ryd994
2021-05-19 10:05:39 +08:00
@gam2046 回源开长连接和 SSL session cache 。SSL 主要是握手开销大。连接建立以后用的是对称加密,开销不大。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/777808

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX