Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Springboot ssl信任库属性不工作_Java_Spring Boot_Ssl_Truststore - Fatal编程技术网

Java Springboot ssl信任库属性不工作

Java Springboot ssl信任库属性不工作,java,spring-boot,ssl,truststore,Java,Spring Boot,Ssl,Truststore,我正在运行一个SpringBoot应用程序,它是一个webservice客户端,向Jboss上的webservice发送请求 jboss上添加了一个证书,从那以后我开始出现异常: Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find vali

我正在运行一个SpringBoot应用程序,它是一个webservice客户端,向Jboss上的webservice发送请求

jboss上添加了一个证书,从那以后我开始出现异常:

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)
因此,我在谷歌上搜索了如何与基于证书的Jboss通信,并想出了一个想法,我需要从Jboss证书创建一个信任存储,然后在我的应用程序中使用它。yaml

    server:
      port: 7887
      address: 127.0.0.1
      ssl:
  #      enabled: true
        trust-store: file:config/myapp.truststore
        trust-store-password: myappdomain
这些都没用。因此,我采用了更多的手动和基于地面的方法

我只是做了下面的工作,效果很好。(对于任何一个有相同问题的人来说,这是可行的;我在config目录中添加了信任库,并且config目录与myapp.jar处于同一级别)

我的问题:为什么application.yaml configs不工作。我错过了什么

上述方法在没有密码的情况下工作(可能是因为jboss中的密钥库和证书上的密码与信任库密码相同)


工作方法是否存在任何安全问题或任何类型的问题。对于未来,我如何使yaml配置工作

正如您编写的那样,它是正确的,您需要使用javax.net.ssl.trustStore和他的对prop javax.net.ssl.trustStorePassword来检查您正在调用的远程服务的有效性

我通过以下方式理解这3个选项:

  • server.ssl.key store=>用于向呼叫您的其他客户端验证您自己(服务器)
  • javax.net.ssl.trustStore=>用于验证您作为客户机从Spring Boot应用程序调用的服务器
  • server.ssl.trust store=>仅当您使用带Spring的双向ssl时才使用,在Spring中,您将自己作为客户端向其他受ssl保护的服务器进行身份验证。在实现SSL(单向SSL)时,您可能不会经常使用此选项。所以坚持前两个,你就很好了

我看起来像是一个例子,这个例子使用了与我相同的方法,但我的方法从来都不起作用。我仍然迷路我只是面临着同样的问题。。。我不想配置SSL,但我有一些对第三方的HTTPS请求。。。属性被忽略:/你找到原因了吗?我也面临类似的问题。不知道为什么密钥库属性可以工作,但信任库却不能。
java  -Djavax.net.ssl.trustStore=config/myapp.truststore -jar myapp.jar