• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

Java 通过 SSL 连接 MySQL

Java技术 winrains 10个月前 (01-11) 377次浏览

概述

MySQL 开启SSL连接一文中,介绍了配置MySQL通过SSL连接的方法。本文继续介绍Java如何通过SSL连接MySQL。

为客户端创建证书

服务端已通过 mysql_ssl_rsa_setup 命令创建了证书,生成的证书文件默认位于/data/mysql目录下,其中ca.pem为根证书。需要利用服务端产生的根证书,为客户端创建keystore文件。创建keystore文件的命令如下:

cd /data/mysql
keytool -importcert -alias MySQLCACert -file "/data/mysql/ca.pem" -keystore truststore -storepass 123456

其中,/data/mysql/ca.pem 为根证书路径,truststore 为创建的keystore名称,123456 为访问keystore的口令。上述命令会在/data/mysql目录下,创建名为truststore 的keystore文件。

创建数据库用户

为应用服务创建数据库连接用户,用root用户登录MySQL,执行如下命令(创建用户名为server_user,口令为password的用户):

mysql> GRANT ALL PRIVILEGES ON *.* TO 'server_user'@'%' IDENTIFIED BY 'password' REQUIRE SSL;
mysql> flush privileges;

请注意,GRANT语句最后的REQUIRE SSL

配置tomcat脚本

修改tomcat/bin/catalina.sh文件,在文件起始位置增加如下配置:

JAVA_OPTS="-Djavax.net.ssl.trustStore=/data/mysql/truststore -Djavax.net.ssl.trustStorePassword=123456"

其中,/data/mysql/truststore为之前创建的keystore文件,123456为访问keystore的口令。

修改数据库连接配置

修改db.url参数,增加&verifyServerCertificate=true&useSSL=true&requireSSL=true配置,例如:

db.url=jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&verifyServerCertificate=true&useSSL=true&requireSSL=true

Java通过SSL方式连接MySQL的配置到此就全部完成了。


版权声明:文末如注明作者和来源,则表示本文系转载,版权为原作者所有 | 本文如有侵权,请及时联系,承诺在收到消息后第一时间删除 | 如转载本文,请注明原文链接。
喜欢 (1)