随笔时间:2022-04-04
随笔内容:在Ubuntu中安装MySQL,配置SSL
服务器环境:腾讯云,Ubuntu18.04,MySQL5.7.3
啰嗦几句:一个半吊子程序员,已是为人父母年纪,难得有点时间能学习一点,可惜记忆大不如从前,本着有一点记一点的想法,记录下自己的使用经过,方便以后查看,东西可能比较简单,各位大神不喜勿喷,嘴下留情,谢谢。
背景介绍:腾讯云Ubuntu18.04安装MySQL5.73,配置SSL,提高数据库稳定性。
笔者自嘲:看了太多的网上的介绍,年代不一样,版本不一样,问题也是各式各样,为了以后能更好的使用,特把自己捯饬了一天的记录记下来,留给健忘的自己;
实现方法:
1、先给Ubuntu系统里面软件列表升下级
sudo apt-get update
sudo apt upgrade
2、安装MySQL
sudo apt-get install mysql-server
3、MySQL初始化设置
mysql_secure_installation
/*不正常情况下,理论上这里的root账户是初始账户,应该没有密码的,但是如果在这里要求输入root账户密码,而且不为空,那需要修改下,具体什么原因我也不知道,解决方法,在另一篇文章中。*/
正常情况下系统会弹出以下选项,翻译如下:
① 安全插件安装,我选择了N;
② 设置root密码以及确认;
③ 删除匿名账号,我选择了Y;
④ 取消root用户远程登录,我选择了Y;
⑤ 删除test库和对test库的访问权限,我选择Y;
⑥ 立即刷新权限表,我选择Y;
4、查看SSL状态
进入MySQL系统,查看SSL证书情况;
SHOW VARIABLES LIKE '%ssl%';
检查当前链接情况
\s
从图中可以看出,当前登录已经使用了SSL加密,但是当前系统设备不是所有链接都是强制使用SSL加密的,这时候需要强制用户链接使用SSL加密
4、强制所有账户使用SSL链接
cd /etc/mysql/mysql.conf.d
sudo nano mysqld.cnf
在mysqld下追加
require_secure_transport = ON
修改
bind-address = 0.0.0.0
如果需要修改port端口,在这里也可以修改
port = xxxx(你想改的端口)
保存退出,重启mysql服务
sudo service mysql restart
sudo ufw allow mysql (修改防火墙,放mysql通行)
5、配置SSL
mysql -u root -p
增加用户并赋予其数据表权限
CREATE DATABASE mytest;
GRANT ALL ON mytest.* TO 'manager'@'%';
FLUSH PRIVILEGES;
至此,服务端的SSL配置已经完毕,只需要将服务器中的证书文件给客户端即可
6、获取证书
证书文件存放在/var/lib/mysql文件目录下面,但是无法直接copy,因为有权限设置,懒得去更改他,直接使用获取其内容,按照文件名保存在客户端里面就行。
sudo cat /var/lib/mysql/ca.pem
sudo cat /var/lib/mysql/client-cert.pem
sudo cat /var/lib/mysql/client-key.pem
7、X.509安全要求
ALTER USER 'manager'@'%' REQUIRE X509;
FLUSH PRIVILEGES;
8、结束