配置spring通过ssl连接mysql

2023-11-25

我正在从 Java 应用程序通过 SSL 连接到 MySQL。我已将 MYSQL 配置为支持 SSL 并生成客户端证书。我已将服务器 CA 证书和客户端证书导入密钥库。这就是我的代码目前的样子

    String url = "jdbc:mysql://127.0.0.1:3306/MySampleDb? verifyServerCertificate =true&useSSL=true&requireSSL=true"

    System.setProperty("javax.net.ssl.keyStore","/home/cert/keystore");
    System.setProperty("javax.net.ssl.keyStorePassword","password");
    System.setProperty("javax.net.ssl.trustStore","/home/cert/truststore");
    System.setProperty("javax.net.ssl.trustStorePassword","password");

    Class.forName("com.mysql.jdbc.Driver");
    con = DriverManager.getConnection(url, user, password);

我想使用 spring 和 C3p0 通过 SSL 连接到 MYSQL。这是我的 spring 配置文件,它从 jdbc.properties 读取参数。

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass" value="${jdbc.driver}"/>
    <property name="jdbcUrl" value="${jdbc.url}"/>
    <property name="user" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
    ........
</bean>

如何配置 spring 设置属性验证服务器证书=true
使用SSL=true
要求SSL = true”

还可以设置keyStore 和 trustStorespring 配置文件中的值。


的价值jdbc.url在 jdbc.properties 中必须是

jdbc:mysql://127.0.0.1:3306/MySampleDb?verifyServerCertificate=true&useSSL=true&requireSSL=true

这些参数必须直接添加到 MySQL 的 URL。参数为keyStore and trustStore应该在启动时传递给 JVM,如下所示:

-Djavax.net.ssl.keyStore=path_to_keystore_file
-Djavax.net.ssl.keyStorePassword=password
-Djavax.net.ssl.trustStore=path_to_truststore_file
-Djavax.net.ssl.trustStorePassword=password

You can 使用Spring设置系统属性但我从来不会用它,太麻烦了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

配置spring通过ssl连接mysql 的相关文章

随机推荐