设为首页 加入收藏

TOP

MySQL 5.7.x开启SSL连接
2017-04-26 10:22:41 】 浏览:4042
Tags:MySQL 5.7.x 开启 SSL 连接

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 基本信息


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


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Oracle获取数据库中的对象创建语句 下一篇MongoDB 3 分片集群安装配置

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目