Ssl Spring引导调用HTTPS端点

Ssl Spring引导调用HTTPS端点,ssl,spring-boot,tomcat8,Ssl,Spring Boot,Tomcat8,我已经创建了一个Spring启动应用程序,我正在作为一个穷人的守护进程运行,以便在另一个tomcat实例上调用另一个Java服务。当连接到另一个Java服务时,我得到了一个SSL错误,但是如果我使用相同的URL和头,用SoapUi(或Postman)之类的东西点击另一个服务,我会得到一个OK响应。所以我的Spring引导配置一定出了问题 我对Spring Boot和SoapUI使用相同的JKS。我尝试在application.properties中使用cert,并在命令行中使用-Djavax.n

我已经创建了一个Spring启动应用程序,我正在作为一个穷人的守护进程运行,以便在另一个tomcat实例上调用另一个Java服务。当连接到另一个Java服务时,我得到了一个SSL错误,但是如果我使用相同的URL和头,用SoapUi(或Postman)之类的东西点击另一个服务,我会得到一个OK响应。所以我的Spring引导配置一定出了问题

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

当我在没有SSL的情况下本地运行另一个服务时,我可以通过我的Spring Boot应用程序很好地连接

我得到的SSL错误是:
sun.security.validator.validator异常:Netscape证书类型不允许用于SSL服务器


我能想到的最好的办法是,SoapUI(或Postman)将自己标识为客户机应用程序,而我的Spring引导将自己标识为服务器?因此,我想我是在问如何使Spring Boot将自己标识为客户端,但我仍然不确定我是否理解SSL错误。首先,soapui在连接时不会验证服务器SSL证书,java默认情况下不会。但是,您可以将java客户端配置为也忽略服务器证书验证

如何忽略取决于您使用的客户机,ApacheHttpClient是最常见的客户机,您可以找到关于它的详细信息


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

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

如何忽略取决于您使用的客户机,ApacheHttpClient是最常见的客户机,您可以找到关于它的详细信息

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