云部署的服务器之间的应用程序透明encryption

我是一名软件工程师,除了完成开发人员处理部署问题的工作外,不一定是一名操作员。

我正在处理的Web应用程序的各个组件将分布在不同的基于的VM上。 在基于node.js的http服务和数据库之间encryption通信的最好或者至less是一个好的做法是什么?

我正在考虑在这两个盒子之间使用SSH隧道…你的服务器默认专家说了些什么?

这看起来很危险地接近购物问题,在常见问题解答(SF)(和其他东南亚网站,显然)禁止。 你也没有提到在云服务器上运行什么操作系统; 但我会继续,并假设它是Linux。

也就是说,我的第一select是IPSec,因为它内置在Linux中,它非常强大,并且在networking层面上很好的集成(所以你不必乱搞路由表)。 不会有任何关于authentication的问题,因为这一切都是使用预共享密钥或证书完成的。 它与iptables防火墙很好地集成在一起。 经过长时间的networking中断后恢复良好。 它通过标准的/etc/rcN.d脚本在启动时自动启动。 使用IPSec隧道时,应用程序只需要在IP地址处发送数据包; encryption全部从这里发生。

如果没有,OpenVPN。 它比IPSec更为复杂,但也有许多相同的优点。

如果不行的话,如果你必须的话,ssh隧道 – 但是,一旦networking中断使他们倒下,你将永远运行。 我宁愿有(甚至更多)根pipe工作比用ssh隧道。

stunnel也许是一个有趣的select。 如果你有几个虚拟机(不只是两个),为它们设置一个VPN,并通过它为节点之间的所有stream量进行路由,这在某种程度上也是明智的 – 它将永远保护“一切” – 如果你添加另一个互连,默认encryption,无需设置额外的ssh / stunnel转发。 执行IPSec可能是另一种select。