2016年7月8日更新。如何实现通过SSL进行Web服务通信的Web服务?
我必须通过SSL实现Web服务到Web服务通信。这个要求就像我们有一个在Eclipse Virgo服务器上运行的应用程序。该应用程序包含少量OSGI软件包。目前,当用户输入一些数据来存储应用程序接受它并将数据持久化到基于实体的异构数据源(数据库,使用JNI的C进程)并且这工作正常。
现在我需要实现的是,同一个应用程序将被部署在多个服务器中,并且在UI中将会有一个选项来指定复制服务器(即运行相同应用程序的服务器和需要复制的数据)。
为此,我们计划创建一个单独的包以具有Restful Web服务并移动所有持久性逻辑以将数据保存到异构数据源。该Rest API将检查可用的复制服务器,并且必须将相同的数据与Rest服务一起传递到这些服务器中。
需要指出的一点是,我们利用Spring Security框架来确保我们的java应用程序的安全性。由于我们不向任何第三方应用程序公开我们的Web服务,因此所有呼叫(包括对Web服务的调用)都将使用此服务进行身份验证和授权。
我们不这样做的负载平衡。每个服务器都是独立的,我们使用安装程序应用程序连同所需的软件一起安装应用程序。这个想法是使用安装程序创建并安装自签名证书。在安装应用程序时,我们可能不知道我们是否需要将其复制到另一台服务器。因为不是此应用程序的每个客户端都需要复制服务器。需要使用复制服务器的客户端必须能够在稍后阶段通过Java Web应用程序管理屏幕启用和禁用一个或多个复制服务器。从那里开始,一台服务器上发生的数据操作需要以双向的方式复制到其他服务器上。
所以我的问题是我们如何动态地获取公钥并加密请求以便在SSL中运行后以双向方式连接到这些复制服务器?
我对SSL的概念完全陌生。
在此先感谢。
我能动态地做到这一点吗?因为我们计划通过UI为应用程序的超级管理员用户指定复制服务器。 – Leejoy
如果您将根CA包含在frontendserver的信任库中,则新复制不会影响此部分。对于复制后端,您需要绑定到IP或复制过程中必须包含的服务器主机名的证书。您每次都要新建一个新证书,从可用的预建列表中选择一个,或者为所有服务器使用通配符 – pedrofb
我已更新我的问题。 – Leejoy