找不到类路径中的JKS密钥库文件

问题描述 投票:0回答:1

我正在尝试使用存储在keystore.jks文件中的JKS证书配置SSL。我有这段代码:

@Configuration
@EnableAutoConfiguration
public class SSLConfig {

    @Autowired
    private Environment env;

    @Value("${server.ssl.key-store}")
    private String keyStore;

    @Value("${server.ssl.key-store-password}")
    private String keyStorePassword;

    @PostConstruct
    private void configureSSL() {
        System.setProperty("javax.net.ssl.keyStore", keyStore);
        System.setProperty("javax.net.ssl.trustStore", keyStore);
        System.setProperty("javax.net.ssl.keyStorePassword", keyStorePassword);
        System.setProperty("javax.net.ssl.trustStorePassword", keyStorePassword);
        System.setProperty("javax.net.ssl.keyStoreType", "JKS");
        System.setProperty("javax.net.ssl.keyStoreProvider", "SUN");
        System.setProperty("javax.net.ssl.trustStoreType", "JKS");
    }
}

当我在application.properties文件中指定值时server.ssl.key-store = classpath:config / keystore.jks我收到IOException,说找不到该文件。如果我指定server.ssl.key-store = src / main / resources / config / keystore.jks一切都很好。当我部署服务时,将没有src目录。如何使它在类路径中工作?

java ssl classpath keystore
1个回答
0
投票

您好,尝试使用以下内容:

    String absPath = Paths.get(System.getProperty("user.dir")).resolve(keyStore).toAbsolutePath().toString()

System.setProperty("javax.net.ssl.keyStore", absPath );
© www.soinside.com 2019 - 2024. All rights reserved.