Grails应用中.jks证书文件存放位置及路径配置咨询
Grails 6.2.0 配置RDS MySQL SSL连接的信任存储路径问题
一、rds-truststore.jks 文件的常规存放位置
- 本地开发场景:通常放在项目的
src/main/resources目录下,该目录下的文件会自动被Gradle打包到war包的WEB-INF/classes路径,同时能被本地运行的bootRun任务加载到类路径中。 - 生产部署场景:如果需要和war包绑定管理,推荐保持在
src/main/resources随包打包;如果需要多应用共享或灵活更换证书,可放在Tomcat的conf目录或服务器上的专用证书目录(如/opt/certs)。
二、不同运行方式下的 javax.net.ssl.trustStore 配置方法
1. Gradle bootRun 本地运行时
因为文件在类路径中,直接用classpath:前缀引用即可,有两种配置方式:
方式一:在项目配置文件中设置
修改 application.groovy:
dataSource { properties { dbProperties = [ sslMode: 'VERIFY_IDENTITY' ] } } grails { spring { boot { run { jvmArgs = [ "-Djavax.net.ssl.trustStore=classpath:rds-truststore.jks", "-Djavax.net.ssl.trustStorePassword=你的信任存储密码" ] } } } }
或修改 application.yml:
dataSource: properties: dbProperties: sslMode: VERIFY_IDENTITY grails: spring: boot: run: jvmArgs: - "-Djavax.net.ssl.trustStore=classpath:rds-truststore.jks" - "-Djavax.net.ssl.trustStorePassword=你的信任存储密码"
方式二:在 build.gradle 中配置 bootRun 任务
bootRun { jvmArgs += [ "-Djavax.net.ssl.trustStore=classpath:rds-truststore.jks", "-Djavax.net.ssl.trustStorePassword=你的信任存储密码" ] }
2. Tomcat部署war包时
分两种场景配置:
场景一:证书随war包打包(推荐)
证书在 src/main/resources 下,打包后位于 WEB-INF/classes,可通过以下方式配置:
- 方法一:在项目配置文件中动态设置系统属性
修改application.groovy:
def trustStoreUrl = this.class.classLoader.getResource("rds-truststore.jks") if (trustStoreUrl) { System.setProperty("javax.net.ssl.trustStore", trustStoreUrl.toURI().path) System.setProperty("javax.net.ssl.trustStorePassword", "你的信任存储密码") } dataSource { properties { dbProperties = [ sslMode: 'VERIFY_IDENTITY' ] } }
- 方法二:修改Tomcat的启动参数
编辑Tomcatbin目录下的catalina.sh(Linux)或catalina.bat(Windows):
# Linux catalina.sh JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=classpath:rds-truststore.jks -Djavax.net.ssl.trustStorePassword=你的信任存储密码"
:: Windows catalina.bat set JAVA_OPTS=%JAVA_OPTS% -Djavax.net.ssl.trustStore=classpath:rds-truststore.jks -Djavax.net.ssl.trustStorePassword=你的信任存储密码
场景二:证书存放在Tomcat外部
比如放在Tomcat的 conf 目录下,路径为 $CATALINA_HOME/conf/rds-truststore.jks,修改Tomcat启动参数:
# Linux catalina.sh JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=$CATALINA_HOME/conf/rds-truststore.jks -Djavax.net.ssl.trustStorePassword=你的信任存储密码"
:: Windows catalina.bat set JAVA_OPTS=%JAVA_OPTS% -Djavax.net.ssl.trustStore=%CATALINA_HOME%\conf\rds-truststore.jks -Djavax.net.ssl.trustStorePassword=你的信任存储密码
内容的提问来源于stack exchange,提问作者wubbalubba
相关产品推荐
相关产品推荐

