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加密的更多相关文章

  1. 使用JavaMail发送邮件,465端口开启ssl加密传输

    package com.wangxin.test; import java.security.Security; import java.util.Date; import java.util.Pro ...

  2. SpringMvc使用JavaMail发送邮件,并使用465端口开启ssl加密传输,保证邮件安全

    代码在本地发邮件没任何问题.但部署到服务器,发送邮件显示连接异常.一开始非常懵逼,之后telnet smtp.163.com 25不通,发现是云服务器出于安全考虑,关闭了服务器的25端口,而25端口是 ...

  3. MySQL的SSL加密连接与性能开销

    本文转载自:http://www.innomysql.net/article/23959.html(只作转载, 不代表本站和博主同意文中观点或证实文中信息) Contents [hide] 1 前言 ...

  4. Self Host WebApi服务传输层SSL加密(服务器端+客户端调用)

    接上篇<WebApi服务URI加密及验证的两种方式>,在实际开发中,仅对URI进行加密是不够的,在传输层采用SSL加密也是必须的. 如果服务寄宿于IIS,那对传输层加密非常简单仅需要配置一 ...

  5. MySQL(MariaDB)的 SSL 加密复制

    背景: 在默认的主从复制过程或远程连接到MySQL/MariaDB所有的链接通信中的数据都是明文的,在局域网内连接倒问题不大:要是在外网里访问数据或则复制,则安全隐患会被放大很多.由于项目要求需要直接 ...

  6. 你的MySQL服务器开启SSL了吗?

    最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的.本篇主 ...

  7. 项目实战1—LNMP的搭建、nginx的ssl加密、身份验证的实现

    总项目流程图,详见 http://www.cnblogs.com/along21/p/8000812.html 实战一:搭建lnmp及类小米等商业网站的实现 环境:关闭防火墙,selinux 1.安装 ...

  8. 你的MySQL服务器开启SSL了吗?SSL在https和MySQL中的原理思考

    最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的.本篇主 ...

  9. [转帖]nginx配置ssl加密(单/双向认证、部分https)

    nginx配置ssl加密(单/双向认证.部分https) https://segmentfault.com/a/1190000002866627   nginx下配置ssl本来是很简单的,无论是去认证 ...

随机推荐

  1. C++算法代码——细胞问题

    题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1152 http://ybt.ssoier.cn:8088/problem_show. ...

  2. MySQL -- 内部临时表

    本文转载自MySQL -- 内部临时表 UNION UNION语义:取两个子查询结果的并集,重复的行只保留一行 表初始化 CREATE TABLE t1(id INT PRIMARY KEY, a I ...

  3. MySQL数据库与NAVICAT安装与配置

    1.安装破解版的NAVICAT:https://www.cnblogs.com/yinfei/p/11427259.html 2.连接MYSQL 下载MYSQL并安装,配置环境变量 以管理员身份运行C ...

  4. Spring的BeanFactoryPostProcessor接口

    接口简介 BeanFactoryPostProcessor 接口是 Spring 初始化 BeanFactory 时对外暴露的扩展点,Spring IoC 容器允许 BeanFactoryPostPr ...

  5. DOM的理解

    https://www.cnblogs.com/djtang/p/11538420.html  dom的理解 https://blog.csdn.net/jiuqiyuliang/article/de ...

  6. Java基本概念:面向对象

    一.简介 面向过程的思维模式是简单的线性思维,思考问题首先陷入第一步做什么.第二步做什么的细节中. 面向对象的思维模式说白了就是分类思维模式.思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独 ...

  7. Pyqt5——带图标的表格(Model/View)

    需求:表格中第一列内容为学生学号,为了突出学号的表示,在第一列的学号旁增加学号图标. 实现:(1)使用Qt的model-view模式生成表格视图. (2)重写代理(QAbstractItemDeleg ...

  8. 基于CefSharp开发浏览器(八)浏览器收藏夹栏

    一.前言 上一篇文章 基于CefSharp开发(七)浏览器收藏夹菜单 简单实现了部分收藏夹功能 如(添加文件夹.添加收藏.删除.右键菜单部分功能) 后续代码中对MTreeViewItem进行了扩展,增 ...

  9. 定西+简单dp

    定西 ECNU-3531 #include<iostream> #include<cstdio> #include<algorithm> #include<c ...

  10. POJ-2031(最小生成树+kruskal)

    Building a Space Station POJ-2031 注意,这里的输出需要是%f型而不是%lf型的,否则wa. #include<iostream> #include< ...