如何在Spring Boot应用程序中使用System.setProperty设置信任库文件?或通过其他可行的方法?

时间:2019-05-07 14:16:32

标签: java spring-boot ssl keystore truststore

我正在使用System.setProperty在Appstarter类中设置信任库文件,但是在运行服务(Spring Boot Rest应用程序)时,程序终止“以退出代码1完成的过程”。通过注释system.setProperty能够运行服务但得到'sun.security.validator.ValidatorException:PKIX路径构建失败'。那么,通过在appstarter中设置信任库而导致服务终止的原因是什么?在这种情况下,如何为我的应用程序设置信任库?我已经尝试过从classpathResource读取jks文件,输入流方法,但是似乎没有任何作用。

但是,我在其他服务中尝试了相同的方法(在appstarter中使用System.setProperty设置信任库),在其中我可以使用rest模板进行Rest调用而没有证书错误'sun.security.validator.ValidatorException:PKIX路径构建失败了

@SpringBootApplication
@ComponentScan("com.data.services")
public class AppStarter extends SpringBootServletInitializer  implements CommandLineRunner {

    private static final Logger LOG = LoggerFactory.getLogger(AppStarter .class);
    static {
        System.setProperty("javax.net.ssl.trustStore", "src/main/resources/truststore/truststore.jks");
    }


    public static void main(String[] args) {        
        SpringApplication.run(AppStarter.class, args);
    }
     @Bean
    public ModelMapper modelMapper() {
      return new ModelMapper();
    }

    @Bean
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }


    @Override
    public SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(AppStarter.class);
    }

    @Override
    public void run(String... strings) throws Exception {

    }
}

0 个答案:

没有答案