客户提供的 API 接口在本地,但业务系统在阿里云,如何建立一个安全的通讯机制?

2020-08-24 13:04:33 +08:00
 turan12

网络架构类似这样:

客户生产服务器( LAN,本地 API 接口在这里)-- 代理服务器( LAN/WAN )-- 阿里云 ECS (线上业务系统)

因为客户那边条件限制,没条件拉专线,代理服务器暂时只能通过一条 1Gbps 的电信宽带连接公网,当然动态 IP 动态域名这些都不是问题,难点的是如何在本地服务器和阿里云服务器之间建立一个安全的通讯机制。

客户提供的 API 接口是通过 http 传输的 json 格式数据,能想到最简单的方法是用 nginx 做 proxy,但似乎安全性上还是有问题。求助 v 站的大神提个思路,感谢!

4091 次点击
所在节点    程序员
37 条回复
yingfengi
2020-08-24 18:42:11 +08:00
sslvpn
GM
2020-08-24 18:45:00 +08:00
如果请求数量不大的话,可以考虑反向 MQ 方式。

你的软件往某个队列发送请求包,客户方系统安装个软件监听该队列,收到了就转发到客户 API 上,得到了结果后也发到队列里返回去。
goofool
2020-08-24 18:53:55 +08:00
花钱买阿里云的 SDWAN 服务
GM
2020-08-24 18:56:54 +08:00
@turan12

对了,可以考虑一下这个,我觉得这个可以 100% 满足你要求:

Consul Connect
qile1
2020-08-24 18:58:50 +08:00
通用 vpn 不太稳定,尤其是 openvpn,好多地方都有干扰,gre 有时候就无法建立,所以提前测试大数据量长时间多时间段测试后可能可以去用一段时间,华为那个 vpn 不知道是啥私有协议
miao1007
2020-08-24 21:19:40 +08:00
使用 consul 的 sidecar
swulling
2020-08-24 21:34:05 +08:00
VPN 算标准答案吧
felixcode
2020-08-24 21:47:10 +08:00
服务器上的防火墙和阿里云的访问控制都可以用起来,白名单。
ZRS
2020-08-24 22:03:56 +08:00
TLS / VPN
turan12
2020-08-25 02:44:06 +08:00
@Osk #19 这个貌似不错哦,感觉跟轻量。
turan12
2020-08-25 02:45:49 +08:00
@GM #22 这种场景下用消息队列总感觉会偶尔丢数据。
turan12
2020-08-25 02:49:56 +08:00
@GM #24 以前没关注过,明天研究一下先。
bilibilifi
2020-08-25 04:58:18 +08:00
最安全的还是 https 证书的双向绑定吧,还可以顺便保证前向安全性。唯一比较麻烦的是客户端设置
yc8332
2020-08-25 08:02:37 +08:00
frps 啊

这么简单
lxfxf
2020-08-25 08:15:55 +08:00
ssl -l
Foxkeh
2020-08-25 08:52:26 +08:00
跟我们公司一样的场景. 最初我们的对策是双向 https,后来又加了 token 校验.
dier
2020-08-25 10:54:07 +08:00
如果是从阿里云上请求本地的 API,阿里云一般有固定 IP 吧,直接在 API 这边设置白名单,只允许云服务器 IP 请求呀,再套层 SSL

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

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

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

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

© 2021 V2EX