Mysql-开启 SSL加密 mysql_ssl_rsa_setup
MySQL 5.7 的SSL加密方法
1、停止msyql
/etc/init.d/mysql stop
2、查看数据库的位置查看datadir的位置
cat /etc/my.cnf
3、安装证书
/usr/bin/mysql_ssl_rsa_setup --datadir=/var/lib/mysql
4、修改权限
chown -R mysql:mysql /var/lib/mysql/*.pem
5、修改/etc/my.cnf 在 [mysqld] 下面添加
ssl-ca = /var/lib/mysql/ca.pem
ssl-cert = /var/lib/mysql/server-cert.pem
ssl-key = /var/lib/mysql/server-key.pem
6、启动 mysql
/etc/init.d/mysql start
7、登录mysql
mysql -uroot -p
8、查看ssl参数状态,查看have_ssl,为YES,这表示已经开始支持SSL了
show global variables like '%ssl%';

9、查看SSL的加密方式
show global variables like 'tls_version';

10、配置SSL用户
a、取消ssl验证
CREATE USER 'yang0001'@'%' IDENTIFIED BY 'afdsa0897091';
grant all privileges on *.* to yang0001@'%' identified by 'afdsa0897091' require none;
alter user yang0001@'%' require none;
b、强制ssl验证,即使设置了强制ssl,在登录时候使用--ssl-mode=disable依然可以避开ssl验证
CREATE USER 'yang0001'@'%' IDENTIFIED BY 'afdsa0897091';
grant all privileges on *.* to yang0001@'%' identified by 'afdsa0897091' require ssl;
alter user abcssl@'%' require ssl;
11、查看是否开启强制用户使用SSL
select user,host,ssl_type,ssl_cipher from mysql.user ;
12、连接数据库的时候,带上SSL
不指定客户端证书方式
5.6
--ssl、--disable-ssl、--skip-ssl:在mysql5.7是将被废弃的选项,将来版本不再支持,建议使用--ssl-mode选项,
/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl 默认为1
/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl=0
/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl=1 默认为1
/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --disable-ssl
/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --skip-ssl
5.7
/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl-mode=disable
/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl-mode=required 默认required
从另一台机器连接过去也可以ssl加密,表明不需要安装客户端证书的
/usr/local/mysql/bin/mysql -uroot -p -h10.105.45.133 --ssl-mode=required
13、指定客户端证书方式,5.6的方式,5.7也可以用
/usr/local/mysql/bin/mysql --ssl-ca=/data/mysql/mysql3306/data/ca.pem \
--ssl-cert=/data/mysql/mysql3306/data/client-cert.pem \
--ssl-key=/data/mysql/mysql3306/data/client-key.pem \
-uroot -p -h127.0.0.1
14、接验证连接是否用了ssl
登录数据库后,输入 status

总结
1、MySQL5.7默认是开启SSL连接,如果强制用户使用SSL连接,那么应用程序的配置也需要明确指定SSL相关参数,否则程序会报错。
2、虽然SSL方式使得安全性提高了,但是相对地使得QPS也降低23%左右。所以要谨慎选择:
2.1、对于非常敏感核心的数据,或者QPS本来就不高的核心数据,可以采用SSL方式保障数据安全性;
2.2、对于采用短链接、要求高性能的应用,或者不产生核心敏感数据的应用,性能和可用性才是首要,建议不要采用SSL方式;
参考文章:
但行好事,莫问前程!
本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/15391155.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?