You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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的启动参数
    编辑Tomcat bin 目录下的 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 15:42:22