2021年底等级包含变得更加严格了,以前中风险的现在有变高风险了,其中一点就要求我们mysql开启ssl连接,然后故事和事故就来了。
说明下我的情况: 服务器:centos7 docker mysql镜像是:mysql:5.7 实际服务器版本为:5.7.31-log
我的解决过程是百度如何开启ssl,还有点搞笑,先教我用OpenSSL玩一遍,一堆命令,我第一次玩还要搞清楚他每个对话的意思,含义慢慢填写,这次已经有经验了快了不少,但还是恨没有先阅读一遍。用工具只需要一行命令就生成完事了(mysql_ssl_rsa_setup) mysql_ssl_rsa_setup --datadir /etc/mysql/cert-mysql/
然后我就开始配置了,我熟练的找到了我的配置文件路径并且加上了
ssl-ca=/etc/mysql/cert-mysql/ca.pem
ssl-cert=/etc/mysql/cert-mysql/server-cert.pem
ssl-key=/etc/mysql/cert-mysql/server-key.pem
然后重启 show VARIABLES like ‘%ssl%’; 的确看到了我刚刚配置的信息 但是 have_ssl还是DISABLED
后来感觉是路径错了,我挨个使用了stat检查了路径,发现并没有错误
然后继续找资料,有些在使用工具“mysql_ssl_rsa_setup”并没有指定目录,然后我也尝试执行了,教程是打印了我上面指定目录时候输出的日志而我的并没有,显然是失败了
我前往他们说的默认输出目录(即数据库目录)去看,发现已经有了,日期还是很久很久以前的日期。这时候在仔细阅读的时候,发现需要停止服务,我崩溃了,docker停止mysql那不就等于容器停止了,停止了容器我的命令基本上执行不上去了,基本上到了死胡同了
越来越想不通了,我打算通过docker cp的方式覆盖原本的*.pem证书,但是这个是很危险的,所以打算先搞一个容器
我就用了以前我本机上的一个mysql容器,然后我呆住了,TND,居然默认是打开的,我不解了为啥我的不行,唯一的可能就是有关闭的设置
然后百度下,好家伙果然有
然后我就开始找我的配置了
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
意思就是这两个目录的都加载进来,我在mysql.conf.d目录里面的一个配置文件中,成功找到了skip-ssl,然后注释掉他,重启容器
终于可以了,泪目,害我半个上午
|