暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL SSL加密连接

数据库笔记 2020-07-22
1510

MySQL SSL

背景

当使用非加密方式连接MySQL数据库时,在网络中传输的所有信息都是明文的,

可以被网络中所有人截取,敏感信息可能被泄露。在传送敏感信息(如密码)时,可以采用SSL连接的方式。

所以,现在很多网站其实默认已经开启了SSL功能,比如Facebook、Twtter、YouTube、淘宝等。

SSL提供的功能

1、数据传输的机密性:利用对称密钥算法对传输的数据进行加密。

2、身份验证机制:基于证书利用数字签名方法对服务器和客户端进行身份验证,其中客户端的身份验证是可选的。

3、消息完整性验证:消息传输过程中使用MAC算法来检验消息的完整性。

安装配置SSL

(5.7.6+版本配置方式,版本小于5.7.6须用openssl方式生成认证文件和秘钥)

安装:

修改权限:

chown mysql.mysql *.pem

查看datadir下生成的认证文件和秘钥文件:

重启mysql

service mysqld stop

service mysqld start

查看ssl状态和文件位置

通过ssl连接方式

创建ssl测试用户,指定只能通过ssl连接(不指定ssl的用户即可通过用户名密码登录也可通过ssl登录)

create user ssl_test@'%' identified by '123456';

grant all on *.* to ssl_test@'%' identified by '123456'require ssl;

flush privileges;

默认通过ssl连接,也可以不加--ssl-mode

5.7客户端才有--ssl-mode参数,老版本须用ssl-ca,ssl-cert,ssl-key指定文件.



通过ssl+秘钥连接方式(安全性更高)

创建x509测试用户,指定只能通过x509加密方式连接

create user x509_test@'%' identified by '123456';

grant all on *.* to x509_test@'%' identitifed by '123456'require x509;

flush privileges;

(远程连接须拷贝认证文件及秘钥文件至远程服务器)



注:如果用户是采用本地localhost或者sock连接数据库,那么不会使用SSL方式!!!

文章转载自数据库笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论