我有一个运行Debian 10的虚拟专用服务器(VPS(。在这个服务器上有一个应用程序(它的代码不能修改(,它创建了一个开放的TCP/IP端口(比方说6000(。该应用程序有一个包含用户和密码的简单数据库,所有传入消息都必须是HTTP。
显然,在这一点上,我非常担心通信的安全性(由于HTTP的简单性质,通信实际上并不存在(。
我的第一个想法是将eth0 iface(暴露在互联网上(的所有数据包丢弃在提到的端口上,在我的VPS上创建OpenVPN服务器,并连接到这个VPN所有想要使用我的应用程序的客户端。这里的问题是,这些客户端很可能是安卓设备,不可能为每个设备上传证书,也不可能通过其他配置魔法来建立VPN连接。我也不想在专用的Android应用程序中实现OpenVPN。
我的另一个想法是,我可能会在VPS上启动一个应用程序,它会实现这样的逻辑:
Android app <--HTTPS--> UnknownApp(on VPS side) <--HTTP--> port6000(My original unsafe app also on the VPS side)
实施这种方案可行吗?Ofc我可以自己写这样的应用程序,但我更喜欢使用经过测试和可靠的解决方案。
您要查找的应用程序是stunnel
。它完全按照您所描述的操作,经过了良好的测试,基于众所周知的库,并可用于生产。