赞
踩
SSL(Secure Socket Layer:安全套接字层)利用数据加密、身份验证和消息完整性验证机制,为基于TCP等可靠连接的应用层协议提供安全性保证。
SSL协议提供的功能主要有:
1、数据传输的机密性:利用对称密钥算法对传输的数据进行加密。
2.、身份验证机制:基于证书利用数字签名方法对服务器和客户端进行身份验证,其中客户端的身份验证是可选的。
3、消息完整性验证:消息传输过程中使用MAC算法来检验消息的完整性。
如果用户的传输不是通过SSL的方式,那么其在网络中数据都是以明文进行传输的,而这给别有用心的人带来了可乘之机。所以,现在很多大型网站都开启了SSL功能。同样地,在我们数据库方面,如果客户端连接服务器获取数据不是使用SSL连接,那么在传输过程中,数据就有可能被窃取。
show global variables like '%ssl%';
当"have_ssl" 为YES的时候,说明数据库是已经开启支持SSL加密连接方式的。
2.3 如果没有支持开启SSL,则需要在启动安装mysql_ssl_rsa_setup 使其能支持SSL 功能
若未开启,通过以下步骤:
- 强制ssl验证
- 在[mysqld]下添加如下代码:
- require_secure_transport = ON
- 指定服务端密钥和证书路径
- 在[mysqld]下添加如下代码:
- ssl-ca = /home/tools/mysql/ca.pem
- ssl-cert = /home/tools/mysql/server-cert.pem
- ssl-key = /home/tools/mysql/server-key.pem
- 指定客户端密钥和证书路径
- 在[client]下添加如下代码:
- ssl-ca = /home/tools/mysql/ca.pem
- ssl-cert = /home/tools/mysql/client-cert.pem
- ssl-key = /home/tools/mysql/client-key.pem
show variables like 'datadir';
ll /home/tools/mysql/*.pem
- [mysql]
- ssl-ca=/var/lib/mysql/ca.pem
- ssl-cert=/var/lib/mysql/client-cert.pem
- ssl-key=/var/lib/mysql/client-key.pem
-
- [mysqld]
- ssl-ca=/var/lib/mysql/ca.pem
- ssl-cert=/var/lib/mysql/client-cert.pem
- ssl-key=/var/lib/mysql/client-key.pem
systemctl restart mysqld
- 老用户直接修改
- ALTER USER 'root'@'19.130.%' REQUIRE SSL;
- FLUSH PRIVILEGES;
- 创建新用户
- GRANT ALL PRIVILEGES ON *.* TO 'ssl_test'@'%' IDENTIFIED BY 'ssl_test' REQUIRE SSL;
- FLUSH PRIVILEGES;
然后在执行2.2的操作查看数据库连接是否是已经是SSL加密校验
参考文章地址:
MySQL 5.7.18 加密连接mysql_ssl_rsa_setuphttps://www.linuxidc.com/Linux/2017-10/148131.htmMySQL5.7配置SSL加密https://www.cnblogs.com/biaopei/p/13039321.html 小笔记:
https://www.linuxidc.com/Linux/2017-10/148131.htm https://www.cnblogs.com/biaopei/p/13039321.html 查看数据库安装目录 show variables like 'datadir'; 查看ssl参数状态,查看have_ssl,为YES,这表示已经开始支持SSL了 show global variables like '%ssl%'; show global status like '%ssl%'; show status like 'ssl_cipher'; \s 和 status 命令查看数据库连接信息 查看证书过期时间 SHOW STATUS LIKE 'Ssl_server_not%'; 证书文件: ca-key.pem # CA私钥 ca.pem # 自签的CA证书,客户端连接也需要提供 client-cert.pem # 客户端连接服务器端需要提供的证书文件 client-key.pem # 客户端连接服务器端需要提供的私钥文件 private_key.pem # 私钥/公钥对的私有成员 public_key.pem # 私钥/公钥对的共有成员 server-cert.pem # 服务器端证书文件 server-key.pem # 服务器端私钥文件 设置用户使用SLL登录 ALTER USER david@'%' REQUIRE SSL; FLUSH PRIVILEGES; 数据库配置SLL 登录数据库-查看数据库安装目录 show variables like 'datadir'; 1、在etc/my.cnf 文件配置 [mysql] ssl-ca=/var/lib/mysql/ca.pem ssl-cert=/var/lib/mysql/client-cert.pem ssl-key=/var/lib/mysql/client-key.pem [mysqld] ssl-ca=/var/lib/mysql/ca.pem ssl-cert=/var/lib/mysql/client-cert.pem ssl-key=/var/lib/mysql/client-key.pem 2、systemctl restart mysqld 重启 然后登陆数据库查看 \s或者status 1、在 /etc/pam.d/system-auth文件配置 auth required pam_tally2.so deny=5 unlock_time=600 2、 添加环境变量 vi ~/.bashrc export PASS_MAX_DAYS=180 export PASS_MIN_DAYS=0 export PASS_MIN_LEN=5 export PASS_WARN_AGE=7 source ~/.bashrc echo $PASS_WARN_AGE 3、查看ssl参数状态,查看have_ssl,为YES,这表示已经开始支持SSL了 show global variables like '%ssl%'; /etc/profile export TMOUT=600 source etc/profile echo $TMOUT 使用修改.bashrc文件(在用户的家目录下)进行环境变量的编辑,只对当前用户有用。使用修改 /etc/profile 文件进行环境变量的编辑,是对所有用户有用。大家一定要注意区别。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。