当前位置:   article > 正文

MYSQL8安全之SSL认证_mysql ssl,网络安全面试必问

mysql ssl

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文


![image.png](https://img-blog.csdnimg.cn/img_convert/d3b306b5472395c7cc9c952832bb1f91.png#averageHue=#2a2a2a&clientId=u17fa661b-89f4-4&from=paste&height=63&id=uc0a81c15&originHeight=126&originWidth=484&originalType=binary&ratio=2&rotation=0&showTitle=false&size=33406&status=done&style=none&taskId=u5d67a828-bcc9-4167-84cb-f62cdd49566&title=&width=242)



  • 1
  • 2
  • 3
  • 4
  • 5

生成SSL连接所需要的RSA密钥对

datadir 指定数据库文件鹿筋

user和uid 指定运行mysql_ssl_rsa_setup命令的用户

mysql_ssl_rsa_setup --datadir=/var/lib/mysql --user=mysql --uid=mysql

默认执行即可

mysqld_ssl_rsa_setup

-vvv 详细,debug模式


![image.png](https://img-blog.csdnimg.cn/img_convert/c67349969b888cd3b5f93493f27aaac3.png#averageHue=#030401&clientId=u17fa661b-89f4-4&from=paste&height=553&id=u346d4972&originHeight=1106&originWidth=2268&originalType=binary&ratio=2&rotation=0&showTitle=false&size=1651529&status=done&style=none&taskId=ucc4da1f9-fdaf-46bc-a915-e29478067cb&title=&width=1134)  
会自动在`datadir`目录下创建下面的证书文件


* ca-key.pem:CA证书私钥文件,用于生成SSL连接所需的服务器和客户端证书。
* ca.pem:CA证书公钥文件,用于验证SSL连接中服务器和客户端证书的合法性。
* client-cert.pem:客户端证书,在SSL连接中用于验证客户端的身份。
* client-key.pem:客户端证书的私钥,用于加密和解密SSL连接中客户端发送的数据。
* private\_key.pem:私钥文件,用于加密和解密SSL连接中的数据。
* public\_key.pem:公钥文件,用于验证SSL连接中的数据。
* server\_cert.pem:服务器证书,用于验证MySQL数据库服务器的身份。
* server\_key.pem:服务器证书的私钥,用于加密和解密SSL连接中服务器发送的数据。


  

### 2、配置SSL证书


<https://blog.csdn.net/Sn_Keys/article/details/126425869>



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

[mysqld]

指定CA证书公钥文件的路径

ssl-ca=/path/to/ca.pem

指定mysql服务器证书的路径

ssl-cert=/path/to/server_cert.pem

指定mysql服务器证书的私钥路径

ssl-key=/path/to/server_key.pem

[client]

指定CA证书公钥文件的路径

ssl-ca=/path/to/ca.pem

指定mysql客户端证书的路径

ssl-cert=/path/to/client_cert.pem

指定mysql客户端证书的私钥路径

ssl-key=/path/to/client_key.pem


重启mysql服务



  • 1
  • 2
  • 3
  • 4
  • 5

重启mysql服务

systemctl restart mysqld


  

#### 检查状态



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

– 检查数据库是否启用SSL
show variables LIKE ‘have_SSl’;


![image.png](https://img-blog.csdnimg.cn/img_convert/4520cd0cbcf032b72dc3204d0d210ef3.png#averageHue=#040a02&clientId=u17fa661b-89f4-4&from=paste&height=182&id=u40d75e5d&originHeight=364&originWidth=926&originalType=binary&ratio=2&rotation=0&showTitle=false&size=280226&status=done&style=none&taskId=ub5b486bc-0b99-4480-8f7f-70eccb33e48&title=&width=463)



  • 1
  • 2
  • 3
  • 4
  • 5

– 查看全局变量中包含"SSL"字符的所有变量名和值
show global variables LIKE ‘%SSL%’;

– 查看tls安全传输版本
show global variables LIKE ‘tls_version’;


从 `MySQL5.7.35` 开始,不推荐使用 `TLSv1` 和 `TLSv1.1` 连接协议  
 ![image.png](https://img-blog.csdnimg.cn/img_convert/1ee4462640c741f5fa44e3bb6ac8916a.png#averageHue=#2c3038&clientId=u17fa661b-89f4-4&from=paste&height=142&id=u60246783&originHeight=284&originWidth=894&originalType=binary&ratio=2&rotation=0&showTitle=false&size=106006&status=done&style=none&taskId=ue3bc98e7-608c-4c16-b2aa-2d2cf7212df&title=&width=447)


  

### 3、配置SSL用户


  

#### 创建用户普通认证方式



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

– 创建用户
CREATE USER 用户名@‘%’ IDENTIFIED BY ‘表名’;

– 给用户授权
GRANT ALL ON *.* TO 用户名@‘%’;

– 应用权限配置
FLUSH PRIVILEGES;

– 查看用户权限
SELECT user,host,ssl_type,ssl_cipher FROM mysql.user;


  

#### 创建用户强制证书认证


`REQUIRE SSL` 强制要求客户端使用 `SSL/TLS加密协议`与服务器进行通信  
 `REQUIRE X509`强制要求客户端不仅要使用 `SSL/TLS连接`,而且还需要提供一个有效的 `x509证书`。在使用 `REQUIRE X509` 时,MySQL 服务器会验证客户端提供的证书是否是`受信任`的,并且该证书是否匹配`已经注册的用户帐户`中的`证书`。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

– require ssl 强制用户使用证书认证
CREATE USER 用户名@‘%’ IDENTIFIED BY ‘表名’ require ssl;

– require x509 强制用户使用证书认证
CREATE USER 用户名@‘%’ IDENTIFIED BY ‘表名’ require x509;


![image.png](https://img-blog.csdnimg.cn/img_convert/8b2ccbd0418cb4a8612f522bf027ed0f.png#averageHue=#24240c&clientId=u17fa661b-89f4-4&from=paste&height=53&id=u6b8cbfcc&originHeight=106&originWidth=1348&originalType=binary&ratio=2&rotation=0&showTitle=false&size=101959&status=done&style=none&taskId=uc5fd447c-0e3c-4f38-9998-ebc91d947f1&title=&width=674)



  • 1
  • 2
  • 3
  • 4
  • 5

– 给用户授权
GRANT ALL ON *.* TO 用户名@‘%’;

– 应用权限配置
FLUSH PRIVILEGES;

– 查看用户权限
SELECT user,host,ssl_type,ssl_cipher FROM mysql.user;


![image.png](https://img-blog.csdnimg.cn/img_convert/403e15efc897dee9dd226133804a3665.png#averageHue=#040503&clientId=u17fa661b-89f4-4&from=paste&height=465&id=uec857bf3&originHeight=930&originWidth=1914&originalType=binary&ratio=2&rotation=0&showTitle=false&size=750957&status=done&style=none&taskId=u09e6673e-ffd8-40a6-a40b-9b15fdecb65&title=&width=957)


  

#### 设置用户强制证书登录



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

– 设置强制ssl
alter user user0001@‘%’ require ssl;

– 取消强制ssl
alter user user0001@‘%’ require none;


  

### 4、SSL登录


  

#### SSL加密登录方法1;



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

–ssl-mode=disable: 表示关闭SSL加密模式

mysql -uroot -p --ssl-mode=disable

登录mysql后查看加密模式

mysql> status;


![image.png](https://img-blog.csdnimg.cn/img_convert/f3ac5b67b921487aee84e053868400be.png#averageHue=#020201&clientId=u17fa661b-89f4-4&from=paste&height=235&id=u150d2ac3&originHeight=470&originWidth=1674&originalType=binary&ratio=2&rotation=0&showTitle=false&size=436991&status=done&style=none&taskId=ua368f62b-86a1-4eab-9f1d-83d9b8cdd7b&title=&width=837)



  • 1
  • 2
  • 3
  • 4
  • 5

–ssl-mode=required: 表示强制开启SSL加密模式

mysql -uroot -p --ssl-mode=required


![image.png](https://img-blog.csdnimg.cn/img_convert/2ebd4b06bba25edddd49b301b9ec34e2.png#averageHue=#093a0a&clientId=u17fa661b-89f4-4&from=paste&height=99&id=ue71116f7&originHeight=198&originWidth=1442&originalType=binary&ratio=2&rotation=0&showTitle=false&size=280316&status=done&style=none&taskId=u267336f6-5895-4747-85cf-9d1e7c8c02b&title=&width=721)



  • 1
  • 2
  • 3
  • 4
  • 5

– 登录mysql后查看加密模式
status;


![image.png](https://img-blog.csdnimg.cn/img_convert/cca6892a420fe7f7beccfc68421e45f3.png#averageHue=#020201&clientId=u17fa661b-89f4-4&from=paste&height=261&id=uc6950f62&originHeight=522&originWidth=1642&originalType=binary&ratio=2&rotation=0&showTitle=false&size=547523&status=done&style=none&taskId=u38b42274-2f56-4fd7-8310-9bc61d21862&title=&width=821)



还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!


王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。


对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!


【完整版领取方式在文末!!】


***93道网络安全面试题***


![](https://img-blog.csdnimg.cn/img_convert/6679c89ccd849f9504c48bb02882ef8d.png)








![](https://img-blog.csdnimg.cn/img_convert/07ce1a919614bde78921fb2f8ddf0c2f.png)





![](https://img-blog.csdnimg.cn/img_convert/44238619c3ba2d672b5b8dc4a529b01d.png)





内容实在太多,不一一截图了


### 黑客学习资源推荐


最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!


对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/741705
推荐阅读
相关标签