跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 客户提供的 API 接口在本地,但业务系统在阿里云,如何建立一个安全的通讯机制?
未分類
2 9 月 2020

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

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

資深大佬 : turan12 11

网络架构类似这样:

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

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

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

大佬有話說 (37)

  • 資深大佬 : ddefewfewf

    内容加密

  • 資深大佬 : namaketa

    你说的安全是指

    1. 链路可靠,不被 isp 劫持和窃听 :加一层 https,不放心去 api 侧把 payload 再用 tls 加密一次。

    2. 暴露在公网的 api 防止未授权访问:根据时间戳和自签发的私钥生成 token,可以参考 jwt

  • 資深大佬 : opengps

    https+白名单 ip(动态维护 ip 变更有点麻烦)

  • 資深大佬 : daniellu

    可以考虑阿里的 VPN 服务,即内网 API 接口通过 VPN 连接到 ECS 所在的业务系统,对于 ECS 业务系统和 API 来说,就是内部网络访问,简单方便。
    不过 VPN 服务要花钱~

  • 資深大佬 : zxyroy

    其实可以反其道而行,能不能在客户那里部署一个 feeder,定时访问服务器上的 api,提供数据,这样就可以 https,也可以加密,还能避免动态 ip 更新不及时

  • 資深大佬 : dyllen

    https+数据签名不够吗?各种支付的对接都是这样的,应该足够了吧。

  • 資深大佬 : tomczhen

    建立可信信道,通过 VPN 接入即可,不需要对应用改造。

  • 主 資深大佬 : turan12

    @namaketa #2
    @opengps #3
    这个是我正在考虑的方案之一

  • 主 資深大佬 : turan12

    @zxyroy #5 系统涉及到一些支付状态之类的实时性较强的数据,如果是这样子轮询的话可能会有延迟。

  • 主 資深大佬 : turan12

    @daniellu #4 这个是个新的思路,正在研究

  • 資深大佬 : shuigui

    简单说就是需要一个安全网关,可以找一下这个 [IPSecVPN 详解(深入浅出简单易懂)]
    实际上自己搭建也不麻烦,strongswan 开源的

  • 資深大佬 : unco020511

    https 足够

  • 資深大佬 : wizardoz

    自己在云服务器上跑一个 OpenVPN,本地主机作为客户端连入 VPN 。解决了内网穿透和加密两个问题。

  • 主 資深大佬 : turan12

    根据上各位大神意见,我总结了两种方案,一种是 https+token,另一种是 vpn 。我先搭环境分别测试一下,过两天来更新这个帖子。

  • 資深大佬 : x66

    https+IP 白名单就够了吧,服务器域名一般很少变化

  • 資深大佬 : x66

    @x66 服务器 IP 一般很少变化

  • 資深大佬 : Foralrec

    通常是拨 VPN,正向还是反向都是这种方案居多
    专线成本比较高,打通关系也比较俊男

  • 資深大佬 : Foralrec

    sed ‘s/俊男 /困难 /’

  • 資深大佬 : Osk

    用 autossh 建立 tcp tunnel 试试,效果类似 vpn,但更简单。
    用证书登陆,安全性也足够,需要注意的是: 不支持 tcp,端口要固定,autossh 参数需要适当调整 (超时)。

    以前没有 frp 等工具时我就是在家里网关上用 autossh 作内网穿透的,挺稳的。

  • 資深大佬 : Osk

    @Osk 不支持 tcp –> 不支持 udp

  • 資深大佬 : yingfengi

    sslvpn

  • 資深大佬 : GM

    如果请求数量不大的话,可以考虑反向 MQ 方式。

    你的软件往某个队列发送请求包,客户方系统安装个软件监听该队列,收到了就转发到客户 API 上,得到了结果后也发到队列里返回去。

  • 資深大佬 : goofool

    花钱买阿里云的 SDWAN 服务

  • 資深大佬 : GM

    @turan12

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

    Consul Connect

  • 資深大佬 : qile1

    通用 vpn 不太稳定,尤其是 openvpn,好多地方都有干扰,gre 有时候就无法建立,所以提前测试大数据量长时间多时间段测试后可能可以去用一段时间,华为那个 vpn 不知道是啥私有协议

  • 資深大佬 : miao1007

    使用 consul 的 sidecar

  • 資深大佬 : swulling

    VPN 算标准答案吧

  • 資深大佬 : felixcode

    服务器上的防火墙和阿里云的访问控制都可以用起来,白名单。

  • 資深大佬 : ZRS

    TLS / VPN

  • 主 資深大佬 : turan12

    @Osk #19 这个貌似不错哦,感觉跟轻量。

  • 主 資深大佬 : turan12

    @GM #22 这种场景下用消息队列总感觉会偶尔丢数据。

  • 主 資深大佬 : turan12

    @GM #24 以前没关注过,明天研究一下先。

  • 資深大佬 : bilibilifi

    最安全的还是 https 证书的双向绑定吧,还可以顺便保证前向安全性。唯一比较麻烦的是客户端设置

  • 資深大佬 : yc8332

    frps 啊

    这么简单

  • 資深大佬 : lxfxf

    ssl -l

  • 資深大佬 : Foxkeh

    跟我们公司一样的场景. 最初我们的对策是双向 https,后来又加了 token 校验.

  • 資深大佬 : dier

    如果是从阿里云上请求本地的 API,阿里云一般有固定 IP 吧,直接在 API 这边设置白名单,只允许云服务器 IP 请求呀,再套层 SSL

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具