我有一个使用Spring Integration进行TCP连接的项目。
- 我使用keytool -genkey -v -keystore命令生成了一个。keystore文件。
- 我使用keytool -export命令使用上面的密钥库生成了一个。cert文件。
- 我用keytool -import命令使用上面的证书生成了一个trustStore文件。
之后,我在项目中使用了keystore和truststore文件,如下所示:
<bean id="sslContextSupport" class="org.springframework.integration.ip.tcp.connection.DefaultTcpSSLContextSupport">
<constructor-arg value="file:C:Program FilesJavajdk-11.0.6binproduced.keystore"/>
<constructor-arg value="file:C:Program FilesJavajdk-11.0.6binproducedTrustStore"/>
<constructor-arg value="TEST1234"/>
<constructor-arg value="TEST1234"/>
</bean>
<int-ip:tcp-connection-factory ...
ssl-context-support="sslContextSupport"
.../>
当我用这个配置发送请求时,我得到
SSLHandshakeException:sun.security.validator.ValidatorException: No trusted certificate found:No trusted certificate found
我该如何解决这个问题?
使用-Djavax.net.debug=all
调试TLS/SSL问题
您是否已将服务器的证书导入信任存储区?
请看这个测试用例和它的注释。