10

JavaアプリケーションからSSL経由でMySQLに接続しています。SSLと生成されたクライアント証明書をサポートするようにMYSQLを構成しました。サーバー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に接続したいと思います。これは、jdbc.propertiesからパラメーターを読み取るSpring構成ファイルです。

<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を構成するにはどうすればよいですか verifyServerCertificate=true
useSSL = true
requireSSL = true "

また、spring構成ファイルでkeyStoreとtrustStoreの値を設定することもできます。

4

3 に答える 3

15

jdbc.urljdbc.propertiesのの値は次のようにする必要があります

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

これらのパラメータは、MySQLのURLに直接追加する必要があります。keyStoreおよびのパラメータは、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

Springを使用してシステムプロパティを設定することはでき ますが、私はそれを使用することはありません。面倒です。

于 2013-01-10T22:04:04.313 に答える