3

I would like to have my jdbc connection used in the application using Jersey and Tomcat to be secured using SSL. The mySQL server already supports SSL, I have the necessary SSL certificate file present on the computer running NetBeans and I can connect to the mySQL server using SSL from MySQL Workbench.

The definition for an unsecured connection currently looks like:

<Resource name="jdbc/Colabo" auth="Container" type="javax.sql.DataSource"
           maxActive="100" maxIdle="30" maxWait="10000"
           username="xxxx" password="yyyyy" driverClassName="com.mysql.jdbc.Driver"
           url="jdbc:mysql://ip.address:3306/db?autoReconnect=true"/>

How can I specify in the section of the context.cml file the connection should be done using SSL?

4

2 回答 2

5

受到类似问题的回答的启发 -配置 spring 以通过 ssl 连接到 mysql

SSL 设置可以在 URL 中传递:

url="jdbc:mysql://ip.address:3306/db?autoReconnect=true&amp;verifyServerCertificate=false&amp;useSSL=true&amp;requireSSL=true"/

我没有找到如何使该verifyServerCertificate=true选项工作的方法 - 可能需要指定 CA 证书的位置是一些设置。

于 2013-05-15T08:56:21.280 回答
2

MariaDB JDBC 驱动程序(也适用于连接 MySQL)最近添加了对自签名证书的支持。最新版本(撰写本文时为 1.1.3)还允许您在运行时直接指定服务器证书,这样您就无需提前配置密钥存储或导入证书。

要设置的两个属性是useSSLserverSslCert。后者可以是证书本身(字符串值)或包含证书的文件的路径(完整路径或类路径相对)。

url="jdbc:mysql://your-server.example.com:3306/db?autoReconnect=true&useSSL=true&serverSslCert=classpath:path/to/server.crt

有关如何连接的完整工作示例,请参见此处。这是一个通用的 JDBC 示例(不使用 Spring),但应该是一个很好的备忘单。

于 2013-07-03T15:42:00.880 回答