我有一个关于TSL/SSL的问题。我正在使用Spring HTTP-Invoker编写客户端 - 服务器应用程序。客户端是通过webstart分发的“经典”桌面应用程序。服务器将在Tomcat/JBoss上运行。我已经用测试服务测试过这个调用,它的功能就像一个魅力一样,但是现在我正尝试使用SSL来加密频道。我会后我的客户端代码澄清:Spring HTTP调用者的TSL/SSL配置
<bean id="checkFuntionalityService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
<property name="serviceUrl" value="https://localhost:8443/test-server/remoting/checkFuntionalityService" />
<property name="serviceInterface" value="at.test.common.remote.CheckFuntionalityService" />
<property name="httpInvokerRequestExecutor">
<bean class="org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor">
<property name="readTimeout" value="5000" />
<property name="connectTimeout" value="5000" />
</bean>
</property>
</bean>
我试图与一个自签名的证书,我把我的cacerts的商店和它的作品,但我仍然有一些问题:
是有办法在客户端使用不同的keystore/truststore(例如classpath:config/test.jks)?我的计划是将我的证书放入一个新的密钥库中,我将其放入客户端项目中。这是可能的,如果是这样的话:我如何在客户端使用这个商店?我知道一个更好的方法是来自可信CA的证书,但这不是一个选项atm。此外,我不能把关键在每个用户cacerts商店。对我有什么提示?
我也对任何类型的建议公开。我应该坚持使用HTTP-Invoker吗?我也可以使用Spring RMI-Invoker,我明白,唯一的区别是HTTP-Invoker使用HTTP-Post来传输二进制内容,而这更不可能被防火墙阻止,对吗?但是如果防火墙配置对我来说不是问题呢?那么我应该使用RMI还是坚持使用HTTP-Invoker?