如何在Spring Aot Processing中指定密钥库文件位置
Spring AOT场景下指定SSL密钥库位置的方案
针对你使用Spring Boot 3.1.0 + Spring Framework 6.0.9,在原生AOT编译后的exe运行场景(无传统JVM类路径)下,完全不用修改application.properties,直接通过命令行参数覆盖配置即可,具体操作如下:
命令行参数覆盖(推荐):
调用生成的exe文件时,直接传入配置参数覆盖密钥库路径,格式如下:./your-app.exe --spring.ssl.bundle.jks.microservice.keystore.location=file:/absolute/path/to/keystore.p12或者使用相对于exe运行目录的相对路径:
./your-app.exe --spring.ssl.bundle.jks.microservice.keystore.location=file:./keystore.p12这里必须用
file:前缀,因为原生AOT运行时没有JVM的类路径概念,classpath:前缀仅能指向编译时打包进镜像的内置资源,外部密钥库文件需要明确指定文件系统路径。修改配置文件(可选):
如果希望固定密钥库路径,也可以直接修改application.properties,把classpath:替换为file:前缀的实际路径,比如:spring.ssl.bundle.jks.microservice.keystore.location: file:/opt/app/keystore.p12但这种方式灵活性差,更换运行环境时需要重新编译或修改配置文件,不如命令行参数方便。
内容的提问来源于stack exchange,提问作者Juergen Zimmermann
相关产品推荐
相关产品推荐

