指定SSL用于在context.xml中的JDBC(Specify SSL to be used f

2019-09-02 20:59发布

我想有使用泽西和Tomcat使用SSL保护应用程序中使用我的JDBC连接。 MySQL服务器已经支持SSL,我有SSL证书文件在计算机上存在必要的运行NetBeans和我可以使用SSL连接到从MySQL Workbench中的MySQL服务器。

一个不安全的连接定义目前是这样的:

<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"/>

我如何能在context.cml文件中的连接应使用SSL来完成的部分指定?

Answer 1:

通过回答类似的问题的启发- 配置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证书的位置是针对一些设置。



Answer 2:

自签名证书的支持最近添加到MariaDB的JDBC驱动程序(这同样适用于连接到MySQL)。 最新版本(1.1.3写这篇文章),也可以让你直接在运行时指定的服务器证书,这样你就不需要配置密钥存储或导入证书提前。

这两个属性来设置是useSSLserverSslCert 。 后者可以是证书本身(String值),或包含证书(全路径或相对类路径)的文件的路径。

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

有关如何连接一个完整的工作示例见这里 。 这是一个普通的JDBC例子(不使用Spring),但应该是一个很好的备忘单来看待。



文章来源: Specify SSL to be used for jdbc in context.xml