首页 > 代码库 > Tomcat JDBC 认证 MySQL SSL加密
Tomcat JDBC 认证 MySQL SSL加密
最近公司做三级认证,也没怎么更新java博客,近期忙完则更新。其中三级认证有一项感觉很有意思:
一般公司MySQL/Mariadb Tomcat做JDBC认证一般是这样的:
db.default.driver=com.mysql.jdbc.Driverdb.default.url="jdbc:mysql://url.to.database/database" db.default.user= "..." //MySQL用户名 db.default.password="..." // MySQL密码 ...... //其它参数优化
也就是说,除了用户名,密码,IP,端口,基本调优,就可以。
但是如果数据库用的是ssl加密连接,那么连接方式务必是需要证书的。于是乎引起了我的兴趣,经过查询,大致流程是这样的,分享一下:
1、MySQL签发证书配置
[mysqld] ssl #开启ssl功能 ssl-ca= /etc/mysql/ssl/cacert.pem #指定CA文件位置 ssl-cert= /etc/mysql/ssl/master.crt #指定证书文件位置 ssl-key= /etc/mysql/ssl/master.key #指定密钥所在位置
2、keytool 导入证书
keytool -import -alias mysqlServerCACert -file cacert.pem.pem -keystore mysqlServerCACertSSL.jks
3、JDBC相关参数:
eg:
db.default.url="jdbc:mysql://url.to.database/test_db?verifyServerCertificate=true&useSSL=true&requireSSL=true"
verifyServerCertificate=true --拒绝不能确认证书如果主机连接(使用ssl证书)
useSSL=true --使用SSL连接。
requireSSL=true --拒绝如果MySQL服务器不支持SSL连接。
4、指明自己的mysqlServerCACertSSL.jsk
export JAVA_OPTS="-Djavax.net.ssl.keyStore=/usr/local/etc/tomcat/certs/mysqlServerCACertSSL.jsk -Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStore=/usr/local/etc/tomcat/certs/mysqlServerCACertSSL.jsk -Djavax.net.ssl.trustStorePassword=password"
the same:
-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
5、重启tomcat
/etc/init.d/tomat restart
6、注意事项:
6.1)MySQL支持ssl,并确保登陆验证。
6.2)账号授权。
6.3)证书权限管理。
6.4)考虑ssl带来的问题。(实际情况要具体分析,否则会带来很多问题)
本文出自 “永不放弃!任志远” 博客,谢绝转载!
Tomcat JDBC 认证 MySQL SSL加密
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。