MySQL 5.7.x开启SSL连接
广告位API接口通信错误,查看德得广告获取帮助
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 防火墙配置
firewall-cmd --permanent --add-service mysql
firewall-cmd --reload
firewall-cmd --list-all
2.1.3 配置安装源
In hd0[1-2]
yum install -y https: //dev .mysql.com /get/mysql57-community-release-el7-10 .noarch.rpm
2.1.4 配置安装包
In hd01
yum install -y mysql-community-server mysql-community-devel mysql-community-client
In hd02
yum install -y mysql-community-client
2.1.5 启动数据库
In hd01
systemctl start mysqld
systemctl enable mysqld
2.1.6 初始化数据库
In hd01
获取临时密码:
cat /var/log/mysqld .log | grep 'A temporary password'
显示如下:
2017-04-22T07:10:18.747550Z 1 [Note] A temporary password is generated for root@localhost: ufqLq&R6tgl%
初始化数据库:
mysql_secure_installation
向导如下:
[...]
Enter password for user root:ufqLq&R6tgl%
[...]
New password:*******
Re-enter new password:*******
[...]
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y
New password:*******
Re-enter new password:*******
[...]
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
[...]
Remove anonymous users ? (Press y|Y for Yes, any other key for No) : y
[...]
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :
[...]
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
[...]
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
[...]
2.1.7 关闭密码复杂度要求
In hd01
cp /etc/my .cnf /etc/my .cnf.default
vim /etc/my .cnf
加入如下配置
[mysqld]
# Disable password validaion plugin
validate-password=off
重启数据库服务
systemctl restart mysqld
注:此操作方便后面配置用户权限,降低MySQL服务对密码复杂度的要求,这也是5.7的新特征,说真的笔者认同MySQL官方的安全主张,但不喜欢(麻烦)。
验证插件的禁用
show plugins;
显示如下:
+----------------------------+----------+--------------------+----------------------+---------+
| Name | Status | Type | Library | License |
+----------------------------+----------+--------------------+----------------------+---------+
| validate_password | DISABLED | VALIDATE PASSWORD | validate_password.so | GPL |
+----------------------------+----------+--------------------+----------------------+---------+
45 rows in set (0.00 sec)
2.2 配置MySQL SSL
2.2.1 确保本机安装openssl
In hd0[1-2]
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 防火墙配置
firewall-cmd --permanent --add-service mysql
firewall-cmd --reload
firewall-cmd --list-all
2.1.3 配置安装源
In hd0[1-2]
yum install -y https: //dev .mysql.com /get/mysql57-community-release-el7-10 .noarch.rpm
2.1.4 配置安装包
In hd01
yum install -y mysql-community-server mysql-community-devel mysql-community-client
In hd02
yum install -y mysql-community-client
2.1.5 启动数据库
In hd01
systemctl start mysqld
systemctl enable mysqld
2.1.6 初始化数据库
In hd01
获取临时密码:
cat /var/log/mysqld .log | grep 'A temporary password'
显示如下:
2017-04-22T07:10:18.747550Z 1 [Note] A temporary password is generated for root@localhost: ufqLq&R6tgl%
初始化数据库:
mysql_secure_installation
向导如下:
[...]
Enter password for user root:ufqLq&R6tgl%
[...]
New password:*******
Re-enter new password:*******
[...]
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y
New password:*******
Re-enter new password:*******
[...]
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
[...]
Remove anonymous users ? (Press y|Y for Yes, any other key for No) : y
[...]
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :
[...]
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
[...]
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
[...]
2.1.7 关闭密码复杂度要求
In hd01
cp /etc/my .cnf /etc/my .cnf.default
vim /etc/my .cnf
加入如下配置
[mysqld]
# Disable password validaion plugin
validate-password=off
重启数据库服务
systemctl restart mysqld
注:此操作方便后面配置用户权限,降低MySQL服务对密码复杂度的要求,这也是5.7的新特征,说真的笔者认同MySQL官方的安全主张,但不喜欢(麻烦)。
验证插件的禁用
show plugins;
显示如下:
+----------------------------+----------+--------------------+----------------------+---------+
| Name | Status | Type | Library | License |
+----------------------------+----------+--------------------+----------------------+---------+
| validate_password | DISABLED | VALIDATE PASSWORD | validate_password.so | GPL |
+----------------------------+----------+--------------------+----------------------+---------+
45 rows in set (0.00 sec)
2.2 配置MySQL SSL
2.2.1 确保本机安装openssl
In hd0[1-2]
无奈人生安全网
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。
上一篇:Nginx简单实现反向代理和负载均衡 【返回网站首页】【进入网站论坛】