在context.xml中指定用于jdbc的SSL



我希望在使用Jersey和Tomcat的应用程序中使用jdbc连接使用SSL进行保护。mySQL服务器已经支持SSL,我在运行NetBeans的计算机上有必要的SSL证书文件,我可以从mySQL工作台使用SSL连接到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"/>

如何在上下文的节中指定。cml文件连接应该使用SSL完成吗?

灵感来自一个类似问题的答案-配置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证书的位置,

对自签名证书的支持最近被添加到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),但应该是一个很好的备忘单。

相关内容

  • 没有找到相关文章