Spring Boot调用HTTPS端点

时间:2016-05-27 16:06:34

标签: ssl spring-boot tomcat8

我创建了一个Spring Boot应用程序,我作为穷人的守护程序运行,在另一个tomcat实例上调用另一个Java服务。我在连接到其他Java服务时遇到SSL错误,但是如果我使用相同的URL和标题来搜索SoapUi(或Postman)之类的其他服务,我会得到一个OK响应。所以我的Spring Boot配置肯定有问题。

我使用相同的JKS进行Spring Boot和SoapUI。我尝试在application.properties中使用cert,并使用-Djavax.net.ssl.keyStore在命令行中指定它以及相关的密码参数。

当我在没有SSL的情况下在本地运行其他服务时,我可以通过我的Spring Boot应用程序正常连接。

我收到的SSL错误是:sun.security.validator.ValidatorException: Netscape cert type does not permit use for SSL server

我能想到的最好是SoapUI(或Postman)将自己识别为客户端应用程序,我的Spring Boot将自己标识为服务器?所以我想我问我如何让Spring Boot将自己标识为客户端,但我仍然不确定我是否理解SSL错误。

1 个答案:

答案 0 :(得分:0)

你有很多问题。首先,soapui在连接时不验证服务器SSL证书,默认情况下不会。但是,您可以将java客户端配置为忽略服务器证书验证。

如何忽略取决于您使用的客户端,apache httpclient是最常见的,您可以在in this thread找到详细信息。

现在,你不应该那样做。相反,您应该拥有一个信任存储,其中包含将验证服务器证书的证书。在这种情况下,您会对 truststore 配置感兴趣,而不是密钥库 - 当您将自己标识给其他方时,密钥库就是其他方式。您需要将根CA和中间证书导入信任库,然后指向配置中的那个。