MySQL8开启ssl加密
1 概述
MySQL从5.7开始默认开启SSL加密功能,进入MySQL控制台后输入status可以查看ssl的状态,出现下图表示在使用ssl:

另外,ssl加密需要密钥与证书,可以使用openssl手动生成或使用mysql_ssl_rsa_setup自动生成,这里使用了mysql_ssl_rsa_setup.
下面从安装开始.
2 安装(可选)
系统CentOS,直接使用yum安装(编译安装可以看这里),先用list查看一下:

这里的版本是8.0.17,不算太旧,就不去官网下载了,直接install:
yum install mysql
yum install mysql-server
好了之后启动服务:
systemctl start mysqld
然后获取临时密码后修改root密码:
grep password /var/log/mysql/mysqld.log

这里显示密码为空,直接root登录修改密码:
mysql -u root -p
alter user root@localhost identified by 'xxxxx

3 生成证书与密钥
首先查看有没有开启ssl,MySQL控制台输入
show variables like '%ssl%';

这里have_ssl显示yes,表示已经开启了,表示本地的使用了ssl连接,如果显示为no,使用MySQL自带的工具即可开启ssl:
mysqld_ssl_rsa_setup
然后默认在/var/lib/mysql下会有几个pem文件(ls查看),说明如下:
| 名字 | 描述 |
|---|---|
| ca-key.pem | CA私钥 |
| ca.pem | 自签名的CA证书 |
| client-key.pem | 连接服务器提供的私钥 |
| client-cert.pem | 连接服务器需要提供的证书 |
| server-key.pem | 服务器端私钥 |
| server-client.pem | 服务器端证书 |
| pulibc_key.pem | 密钥对公钥 |
| private_key.pem | 密钥对私钥 |
接着重启服务:
systemctl restart mysqld
4 测试
进入服务器的MySQL控制台,新建两个测试用户,一个使用ssl,一个不使用ssl:

然后在本机上测试,首先测试不需要ssl的用户,输入密码123456后可以直接登录:

然后测试需要ssl的用户:

输入密码123456后登录不了,使用scp从服务器复制CA证书与客户端证书与私钥:
scp username@xxx.xxx.xxx.xxx:/var/lib/mysql/\{ca.pem,client-key.pem,client-cert.pem} .
然后在登录时加上
--ssl-ca=ca.pem
--ssl-cert=client-cert.pem
--ssl-key=client-key.pem

登录成功.
MySQL8开启ssl加密的更多相关文章
- 使用JavaMail发送邮件,465端口开启ssl加密传输
package com.wangxin.test; import java.security.Security; import java.util.Date; import java.util.Pro ...
- SpringMvc使用JavaMail发送邮件,并使用465端口开启ssl加密传输,保证邮件安全
代码在本地发邮件没任何问题.但部署到服务器,发送邮件显示连接异常.一开始非常懵逼,之后telnet smtp.163.com 25不通,发现是云服务器出于安全考虑,关闭了服务器的25端口,而25端口是 ...
- MySQL的SSL加密连接与性能开销
本文转载自:http://www.innomysql.net/article/23959.html(只作转载, 不代表本站和博主同意文中观点或证实文中信息) Contents [hide] 1 前言 ...
- Self Host WebApi服务传输层SSL加密(服务器端+客户端调用)
接上篇<WebApi服务URI加密及验证的两种方式>,在实际开发中,仅对URI进行加密是不够的,在传输层采用SSL加密也是必须的. 如果服务寄宿于IIS,那对传输层加密非常简单仅需要配置一 ...
- MySQL(MariaDB)的 SSL 加密复制
背景: 在默认的主从复制过程或远程连接到MySQL/MariaDB所有的链接通信中的数据都是明文的,在局域网内连接倒问题不大:要是在外网里访问数据或则复制,则安全隐患会被放大很多.由于项目要求需要直接 ...
- 你的MySQL服务器开启SSL了吗?
最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的.本篇主 ...
- 项目实战1—LNMP的搭建、nginx的ssl加密、身份验证的实现
总项目流程图,详见 http://www.cnblogs.com/along21/p/8000812.html 实战一:搭建lnmp及类小米等商业网站的实现 环境:关闭防火墙,selinux 1.安装 ...
- 你的MySQL服务器开启SSL了吗?SSL在https和MySQL中的原理思考
最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的.本篇主 ...
- [转帖]nginx配置ssl加密(单/双向认证、部分https)
nginx配置ssl加密(单/双向认证.部分https) https://segmentfault.com/a/1190000002866627 nginx下配置ssl本来是很简单的,无论是去认证 ...
随机推荐
- C++算法代码——细胞问题
题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1152 http://ybt.ssoier.cn:8088/problem_show. ...
- MySQL -- 内部临时表
本文转载自MySQL -- 内部临时表 UNION UNION语义:取两个子查询结果的并集,重复的行只保留一行 表初始化 CREATE TABLE t1(id INT PRIMARY KEY, a I ...
- MySQL数据库与NAVICAT安装与配置
1.安装破解版的NAVICAT:https://www.cnblogs.com/yinfei/p/11427259.html 2.连接MYSQL 下载MYSQL并安装,配置环境变量 以管理员身份运行C ...
- Spring的BeanFactoryPostProcessor接口
接口简介 BeanFactoryPostProcessor 接口是 Spring 初始化 BeanFactory 时对外暴露的扩展点,Spring IoC 容器允许 BeanFactoryPostPr ...
- DOM的理解
https://www.cnblogs.com/djtang/p/11538420.html dom的理解 https://blog.csdn.net/jiuqiyuliang/article/de ...
- Java基本概念:面向对象
一.简介 面向过程的思维模式是简单的线性思维,思考问题首先陷入第一步做什么.第二步做什么的细节中. 面向对象的思维模式说白了就是分类思维模式.思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独 ...
- Pyqt5——带图标的表格(Model/View)
需求:表格中第一列内容为学生学号,为了突出学号的表示,在第一列的学号旁增加学号图标. 实现:(1)使用Qt的model-view模式生成表格视图. (2)重写代理(QAbstractItemDeleg ...
- 基于CefSharp开发浏览器(八)浏览器收藏夹栏
一.前言 上一篇文章 基于CefSharp开发(七)浏览器收藏夹菜单 简单实现了部分收藏夹功能 如(添加文件夹.添加收藏.删除.右键菜单部分功能) 后续代码中对MTreeViewItem进行了扩展,增 ...
- 定西+简单dp
定西 ECNU-3531 #include<iostream> #include<cstdio> #include<algorithm> #include<c ...
- POJ-2031(最小生成树+kruskal)
Building a Space Station POJ-2031 注意,这里的输出需要是%f型而不是%lf型的,否则wa. #include<iostream> #include< ...