mysql数据库开启ssl_MySQL 5.7.x开启SSL连接

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:44   1167   0

1 理论部分

1.1 SSL的理解

1.1.1 基本概念

SSL即Secure Socket Layer)- 安全套接字层(由Netscape提出

1.1.2 SSL的作用

SSL - 实现客户端和服务器之间的安全通讯(加密和完整性校验)

1.1.3 协议组成

1) SSL Record Protocol(记录协议)

- 建立于TCP之上

- 为高层提供数据封装、压缩、加密等基本功能

2) SSL Handshake Protocol(握手协议)

- 建立于Record Protocol协议之上

- 用户数据传输前的双方身份认证、协商加密算法、交换机密秘钥等

1.1.4 ISO层次

SSL工作于网络层和应用层之间

1.2 MySQL SSL

与包括MySQL 5.6版本在内的旧版本相比,5.7.x增加了连接加密功能,防止通讯过程中数据库信息被窃取

2 实践部分

2.1 环境配置

2.1.1 基本信息

OS=CentOS 7.3 x86_64

IP Address=10.168.0.2[4-5]

HostName=hd0[1-2].cmdschool.org

注:以上隐含名称解析服务

2.1.2 防火墙配置

2.1.3 配置安装源

In hd0[1-2]

2.1.4 配置安装包

In hd01

In hd02

2.1.5 启动数据库

In hd01

2.1.6 初始化数据库

In hd01

获取临时密码:

显示如下:

初始化数据库:

向导如下:

2.1.7 关闭密码复杂度要求

In hd01

加入如下配置

重启数据库服务

注:此操作方便后面配置用户权限,降低MySQL服务对密码复杂度的要求,这也是5.7的新特征,说真的笔者认同MySQL官方的安全主张,但不喜欢(麻烦)。

验证插件的禁用

显示如下:

2.2 配置MySQL SSL

2.2.1 确保本机安装openssl

In hd0[1-2]

查询MySQL是基于那种SSL

返回如下提示:

以上表明官方的编译基于yaSSL,如果是基于openSSL,以下命令查看openSSL的版本

2.2.2 生成所需的证书

In hd01

会看到如下证书

2.2.3 MySQL配置文件中开启SSL

In hd01

加入如下配置

重启服务

2.2.4 确认是否开启SSL

In hd01

显示如下:

2.2.5 查看SSL的加密方式

In hd01

显示如下:

2.2.6 配置SSL用户

In hd01

查看是否开启强制用户使用SSL

显示如下:

注:帐号“scm@hd01.cmdschool.org”不强制使用SSL链接而“scm@hd02.cmdschool.org”被强制使用SSL链接,不使用SSL无法登陆。

2.2.7 登录测试

1) 使用SSL链接

In hd02

2) 禁用SSL链接

In hd01

3) 使用证书登录(可选,不用也能SSL登陆)

In hd01

4) 配置文件指定证书登录(可选,不用也能SSL登陆)

In hd01

输入如下配置:

2.2.8 客户端查看SSL状态

1) 从状态中查看

In hd02

显示如下:

注:正常会看到“SSL: Cipher in use is DHE-RSA-AES256-SHA”字样

2) 查看SSL版本

In hd02

显示如下:

3) 查看加密方式

In hd02

显示如下:

4) 支持的加密方式

In hd02

显示如下:

3 附录

3.1 JDBC的链接处理方式

3.1.1 错误提示(Error)

3.1.2 JDBC客户端的解决方法

连接字符串url中加入ssl=true或false:

注:本文只是笔着希望可以在MySQL的服务端解决以上错误提示而整理,如果网友有方案提供,笔者感激不尽。

参阅文档

MySQL Database

https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_mysql.html

https://dev.mysql.com/doc/refman/5.7/en/validate-password-plugin.html

https://dev.mysql.com/doc/refman/5.7/en/secure-connection-options.html

MySQL开启SSL

https://dev.mysql.com/doc/refman/5.7/en/using-secure-connections.html

0b1331709591d260c1c78e86d0c51c18.png

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP