如何在两个Apache Tomcat服务器之间启用SSL通信

时间:2012-07-26 17:18:17

标签: web-services tomcat ssl client-server ssl-certificate

我有两个计算机系统,每个系统都有一个apache服务器。一台机器是客户机,另一台是服务器机器。我希望加密客户端请求和服务器响应,从而使数据传输安全。

有人可以指点一下如何在这方面取得进展。 通信不涉及任何GUI组件,这意味着通信纯粹是后端。

客户端和服务器都是用java编码的。我正在使用Axis2和jaxws进行通信。

目前,我可以发送客户端请求并在未启用SSL的情况下接收服务器响应。现在,如果我启用SSL,这意味着我还应该根据SSL修改现有代码,或者当前的工作代码仍然保持良好状态。

2 个答案:

答案 0 :(得分:0)

这里有很多选择。既然你提到了SSL ...... 在每台服务器上生成一个非对称密钥对(RSA 2048是一个安全的选择)。然后在每台服务器上创建一个自签名证书。然后将每个证书复制到另一台计算机,并将其标记为apache正在使用的Java环境以及NONE OTHER受信任的可信任。在每个apach上配置SSL / TLS以使用良好的对称密码(3DES是一个安全的选择,但如果你想要前沿,还有其他更新的密码)。接下来确保Tomcat服务器之间的所有访问都是通过https URL进行的,你应该处于不错的状态。

另一种方法是使用IPSEC使用证书或其他信任库在两台服务器之间建立静态隧道。

答案 1 :(得分:0)

一个相当简单的选择是使用stunnel,这可以通过大多数* NIX系统上的标准包管理器获得。您将一个stunnel配置为一个服务器上的客户端(如果您有服务器),然后将另一个服务器配置为服务器(如果您愿意,则配置为客户端),然后将Tomcat实例配置为连接到localhost:XYZ,其中XYZ是端口stunnel在听的地方。

使用stunnel的好处是可以使用它来隧道传输任何协议:它既不是特定于Tomcat的技术,也不是特定于Java的技术,因此您可以将它用于同一环境中的其他应用程序如果你愿意的话。