如何从服务器上的 Spring Boot jar 文件访问证书?

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

我已经在服务器上以 jar 文件的形式运行 Spring Boot 应用程序(开放班次)。 根据环境,我需要不同的密钥库和信任库。这意味着我无法提交这些文件,但需要通过配置映射将它们加载到服务器。我将这些文件放在单独创建的文件夹 /etc/trusts 中,并且应用程序在 /app 文件夹中运行。在我的配置中,我使用 /etc/trusts/keystore.p12 和 /etc/trusts/truststore.p12 处理 keyore 和 truststore,但出现错误:

“类路径资源 [etc/trusts/keystore.p12] 无法打开,因为它不存在”

但是它存在并且可以在服务器上看到它。我怎样才能让它运行,以便 spring boot 可以访问 /etc/trusts 文件夹中的文件?

信息:我检查了配置是否具有前导斜杠 /etc 并且它已正确存储,因此只有错误消息不使用它。

我如何尝试加载文件:

val resource: Resource = resourceLoader.getResource(fileLocation)
    return resource.inputStream

对于我的本地环境,我在 src/main/resources 中有文件,并使用 classpath:keystore.p12 等在配置中解决它们。它运行良好。

提前感谢您的帮助。

spring-boot file jar external
1个回答
0
投票

正如在 getResource 的文档中可以看到的,您需要指定资源是在

classpath
上还是在您的情况下
file

所以你必须在你的路径前面添加

file:
,例如:

val resource: Resource = resourceLoader.getResource(`file:/etc/trusts/keystore.p12`)
© www.soinside.com 2019 - 2024. All rights reserved.