ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

配置mysql使用ssl连接,配置java连接mysql使用ssl

2021-05-07 10:34:14  阅读:694  来源: 互联网

标签:pem ca ssl cert client key mysql 连接



查看mysql是否支持ssl连接

show variables like '%ssl%';

生成服务器端


openssl genrsa 2048 > ca-key.pem
openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem -subj "/C=FR/ST=''/L=''/O=mysqld/CN=mysqld-CA" > ca-cert.pem
openssl req -sha1 -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem -subj "/C=FR/ST=''/L=''/O=mysqld/CN=mysqld-server" > server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -sha1 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem

生成客户端证书


openssl req -sha1 -newkey rsa:2048 -days 3650 -nodes -keyout client-key.pem > client-req.pem -subj "/C=FR/ST=''/L=''/O=mysql-client/CN=mysql-client"
openssl rsa -in client-key.pem -out client-key.pem
openssl x509 -sha1 -req -in client-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > client-cert.pem 

在前面的步骤中, 我们已经生成了8个文件, 分别是:

ca-cert.pem: CA 证书, 用于生成服务器端/客户端的数字证书.
ca-key.pem: CA 私钥, 用于生成服务器端/客户端的数字证书.
server-key.pem: 服务器端的 RSA 私钥
server-req.pem: 服务器端的证书请求文件, 用于生成服务器端的数字证书.
server-cert.pem: 服务器端的数字证书.
client-key.pem: 客户端的 RSA 私钥
client-req.pem: 客户端的证书请求文件, 用于生成客户端的数字证书.
client-cert.pem: 客户端的数字证书.


配置my.cnf
[mysqld]
ssl-ca=/etc/mysql/ca-cert.pem
ssl-cert=/etc/mysql/server-cert.pem
ssl-key=/etc/mysql/server-key.pem 

添加一个用户强制要求ssl连接

create user 'bioid'@'%' identified by 'Abc12345';

grant all on *.* to 'bioid'@'%' require ssl;


连接测试

mysql --ssl-ca="/home/mysqlcert/ca-cert.pem" --ssl-cert="/home/mysqlcert/client-cert.pem" --ssl-key="/home/mysqlcert/client-key.pem" -u bioid -p -S /home/mysql/mysql.sock

配置jdbc的连接使用ssl

导出keystore供java连接使用
keytool -importcert -file ca-cert.pem -keystore truststore --storepass Abc123

设置java环境变量编辑/etc/profile

增加一行
export  JAVA_OPTS=" -Djavax.net.ssl.trustStore=/home/mysqlcert/truststore  -Djavax.net.ssl.trustStorePassword=Abc123"

执行下source /etc/profile使其生效

配置jdbc连接url


jdbc.url=jdbc:mysql://127.0.0.1:3306/mydb?verifyServerCertificate=true&useSSL=true&requireSSL=true


 

标签:pem,ca,ssl,cert,client,key,mysql,连接
来源: https://blog.csdn.net/xusen112/article/details/116482926

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有