mysql5.7配置了证书(pem),但是have_ssl一直为DISABLED

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/

然后我就开始配置了,我熟练的找到了我的配置文件路径并且加上了

// /etc/mysql/conf.d
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,居然默认是打开的,我不解了为啥我的不行,唯一的可能就是有关闭的设置

然后百度下,好家伙果然有
在这里插入图片描述

然后我就开始找我的配置了

# cat /etc/mysql/my.cnf
# ........
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

意思就是这两个目录的都加载进来,我在mysql.conf.d目录里面的一个配置文件中,成功找到了skip-ssl,然后注释掉他,重启容器

终于可以了,泪目,害我半个上午

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是在MySQL 5.7中设置SSL的步骤: 1. 确保你已经安装了OpenSSL库。如果没有安装,可以使用以下命令安装: ```shell yum install openssl openssl-devel ``` 2. 生成SSL证书和密钥。可以使用以下命令生成: ```shell openssl req -newkey rsa:2048 -days 3650 -nodes -x509 -subj "/C=US/ST=CA/L=San Francisco/O=MySQL/OU=IT Department/CN=mysql.example.com" -keyout server-key.pem -out server-cert.pem ``` 这将生成一个有效期为10年的自签名SSL证书和密钥。请注意,这只是一个示例命令,你需要根据你的实际情况进行修改。 3. 将证书和密钥复制到MySQL数据目录中。可以使用以下命令: ```shell cp server-key.pem /var/lib/mysql/ cp server-cert.pem /var/lib/mysql/ ``` 4. 修改MySQL配置文件my.cnf,启用SSL。可以使用以下命令打开my.cnf文件: ```shell vi /etc/my.cnf ``` 在文件中添加以下内容: ```shell [mysqld] ssl-ca=/var/lib/mysql/server-cert.pem ssl-cert=/var/lib/mysql/server-cert.pem ssl-key=/var/lib/mysql/server-key.pem ``` 这将启用SSL并告诉MySQL证书和密钥的位置。 5. 重启MySQL服务以使更改生效。可以使用以下命令: ```shell systemctl restart mysqld ``` 现在,MySQL已经配置为使用SSL连接。你可以使用以下命令测试SSL连接: ```shell mysql -u <username> -p --ssl-ca=/var/lib/mysql/server-cert.pem --ssl-cert=/var/lib/mysql/server-cert.pem --ssl-key=/var/lib/mysql/server-key.pem ``` 请注意,你需要将`<username>`替换为你的MySQL用户名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值