B:大哥!!!QAQ
A:咋了?
B:赵傻子监控了我的数据库操作记录!!连我喜欢丽丽的秘密都被他知道了!我不活了!!QAQ
A:咋监控你的?它有你数据库的账号密码?
B:不是,它通过工具从网络上抓包,把我的数据库操作记录都抓到了!!你看!!!
B:这是他监控的信息!!!
A:哦,tshark啊,这工具确实可以用来抓包
B:大哥,咋办啊,我这都不敢操作数据库了QAQ
A:别哭了,你开启下数据库的SSL连接不就好了
B:什么东东?
A:简单来说就是开启SSL后就相当于为你传送的数据加密了,这样别人就没法抓到你在网络上传输的信息了
B:哦,那咋整捏?
A:我先问下,之前跟你说的数字证书啥的你还记得不?
B:...
A:<<网络安全--数字签名/数字证书>>
A:你的MYSQL版本是多少的?
B:5.7的
A:哦哦,那简单点儿,我给你讲讲怎么做,你不要插话,有什么问题等我讲完了再问.
B:好的!
A:好的,以下是详细步骤
1. 检查下你的data_dir下有没有mysql自动生成的相关文件
root@cuijr-B360M-D3H:/var/lib/mysql# ll | grep pem
-rw------- 1 mysql mysql 1680 8月 19 15:57 ca-key.pem
-rw-r--r-- 1 mysql mysql 1112 8月 19 15:57 ca.pem
-rw-r--r-- 1 mysql mysql 1112 8月 19 15:57 client-cert.pem
-rw------- 1 mysql mysql 1680 8月 19 15:57 client-key.pem
-rw------- 1 mysql mysql 1680 8月 19 15:57 private_key.pem
-rw-r--r-- 1 mysql mysql 452 8月 19 15:57 public_key.pem
-rw-r--r-- 1 mysql mysql 1112 8月 19 15:57 server-cert.pem
-rw------- 1 mysql mysql 1680 8月 19 15:57 server-key.pem
mysql5.7以后的版本会在安装时自动生成这些,如果没有的话就是被你给删了,不过不要着急,可以用下面的方法重新生成
root@cuijr-B360M-D3H:/var/lib/mysql# mysql_ssl_rsa_setup --datadir=/var/lib/mysql/ --uid=mysql
Generating a 2048 bit RSA private key
.................................+++
................................+++
writing new private key to 'ca-key.pem'
-----
Generating a 2048 bit RSA private key
.........................+++
..............+++
writing new private key to 'server-key.pem'
-----
Generating a 2048 bit RSA private key
..............................+++
.+++
writing new private key to 'client-key.pem'
-----
root@cuijr-B360M-D3H:/var/lib/mysql# ll | grep pem
-rw------- 1 mysql mysql 1679 11月 19 10:25 ca-key.pem
-rw-r--r-- 1 mysql mysql 1107 11月 19 10:25 ca.pem
-rw-r--r-- 1 mysql mysql 1107 11月 19 10:25 client-cert.pem
-rw------- 1 mysql mysql 1679 11月 19 10:25 client-key.pem
-rw------- 1 mysql mysql 1675 11月 19 10:25 private_key.pem
-rw-r--r-- 1 mysql mysql 451 11月 19 10:25 public_key.pem
-rw-r--r-- 1 mysql mysql 1107 11月 19 10:25 server-cert.pem
-rw------- 1 mysql mysql 1675 11月 19 10:25 server-key.pem
其中--datadir是指定文件生成的位置,--uid是指定生成文件的属主,这个填mysql就好了
2. 重启mysql服务,并检查mysql是否扫描到了相关的文件
mysql> show variables like '%ssl%';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | ca.pem |
| ssl_capath | |
| ssl_cert | server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | server-key.pem |
+---------------+-----------------+
9 rows in set (0.00 sec)
好,搞定了!
B:这就搞定了???
A:准确来说是搞定了一半,上面的步骤执行完以后,服务器端算是搞定了,剩下的就是客户端怎么连接的事儿了.
B:呃...能讲讲客户端那边怎么连接吗?
A:可以,客户端那边的连接有多种情况,且听我一一分析