mysql5.7增加ssl认证

一、查看服务端mysql环境

1.查看是否开启了ssl,"have_ssl" 为YES的时候,数据库是开启加密连接方式的。

show global variables like '%ssl%';

2.查看数据库版本

select version();

3.查看数据库端口

show variables like 'port';

4.查看数据库存放路径

show variables like 'datadir';

二.配置证书

通过openssl制作生成证书

1.生成一个CA私钥

openssl genrsa 2048 > ca-key.pem

2.通过CA私钥生成数字证书

openssl req -new -x509 -nodes -days 99999 -key ca-key.pem -out ca.pem

3.创建mysql服务器私钥和请求证书

openssl req -newkey rsa:2048 -days 99999 -nodes -keyout server-key.pem -out server-req.pem

4.将私钥转换为RSA私钥文件格式

openssl rsa -in server-key.pem -out server-key.pem

5.用CA证书生成一个服务器的数字证书

openssl x509 -req -in server-req.pem -days 99999 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

6.创建客户端的RSA私钥和数字证书

openssl req -newkey rsa:2048 -days 99999 -nodes -keyout client-key.pem -out client-req.pem

注意:这里的Common Name字段需要填写应用服务器的ip或域名,也就是指连接服务器的ip

7.将生成的私钥转换为RAS私钥文件格式

openssl rsa -in client-key.pem -out client-key.pem

8.用CA证书来生成一个客户端的数字证书

openssl x509 -req -in client-req.pem -days 99999 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

注意:将生成后的客户端证书拷贝到应用服务器上,client-*

9.查看所有的ssl文件

ca-key.pem
ca.pem
client-cert.pem
client-key.pem
client-req.pem
server-cert.pem
server-key.pem
server-req.pem

三、数据库配置ssl证书

1.将CA证书和服务端ssl文件至mysql数据目录

cp ca.pem server-*.pem /www/server/data

注意:/www/server/data是数据库的路径,在查看环境时收集到,根据实际情况更换

2.修改msql数据库目录的CA证书和服务端ssl文件所属用户和组

chown -v mysql.mysql  /www/server/data{ca,server*}.pem

3.修改mysql配置文件,添加ssl调用配置

vi /etc/my.cnf
在mysqld下添加
[mysqld]
ssl-ca=/www/server/data/ca.pem
ssl-cert=/www/server/data/server-cert.pem
ssl-key=/www/server/data/server-key.pem

4.重启mysql服务,检查数据库ssl是否开启状态,have_openssl 与 have_ssl 值都为YES表示ssl开启成功

service mysqld restart
show variables like 'have%ssl%';

5.测试ssl可用性

grant all on *.* to 'test'@'127.0.0.1' identified by 'test' require SSL;

注意:需要将127.0.0.1更换为应用服务器的ip

6.密码连接测试

mysql -utest -ptest -h 127.0.0.1
此时会报错:
ERROR 1045 (28000): Access denied for user 'test1'@'124.222.67.220' (using password: YES)
YES代表需要密码,但没有通过ssl验证

注意:如果MySQL端口不是3306,需要在后面加参数(-P 端口号)

7.通过客户端密钥与证书ssl+密码连接测试,并查看属性

mysql -utest -ptest -h 127.0.0.1 --ssl-cert=client-cert.pem --ssl-key=client-key.pem
进入数据库后,\s查看属性
加密前:
SSL: Not in use
加密后:
SSL: Cipher in use is DHE-RSA-AES256-GCM-SHA384

注意:启动时,需要在client-cert.pem和client-key.pem证书目录下启动,或者在启动时更改证书的路径

例:mysql -utest -ptest -h 127.0.0.1 --ssl-cert=/root/client-cert.pem --ssl-key=/root/client-key.pem

mysql5.7增加ssl认证(1)相关推荐

  1. mysql5.7增加ssl认证

    mysql5.7增加ssl认证 一.查看服务端mysql环境 1.查看是否开启了ssl,"have_ssl" 为YES的时候,数据库是开启加密连接方式的. show global ...

  2. mysql使用jdbc连接增加ssl认证

    mysql使用jdbc连接增加ssl认证 1.创建用户并指定ssl连接 grant all on . to 'imooc'@'%' identified by 'imooc require SSL; ...

  3. Tomcat双向SSL认证及CA数字证书安装和配置QQ即时通信协议窥探

    1.Java加密与解密的艺术 网络信息安全近几年成为热点.职业发展新方向,常规Web应用如BBS.BLOG.SNS及电子商务等B/S系统是以用户为核心,账号管理是这些系统中唯一的安全屏障:IM即时聊天 ...

  4. Elasticsearch SSL认证/证书制作

    转载自:Elasticsearch SSL认证/证书制作 Elasticsearch SSL认证/证书制作 - a-du - 博客园 制作目的 在上一篇<elasticsearch7.X x-p ...

  5. MongoDB增加用户认证:增加用户、删除用户、修改用户密码、读写权限、只读权限...

    MongoDB增加用户认证:增加用户.删除用户.修改用户密码.读写权限.只读权限 说明:增加用户是针对数据库进行操作    www.2cto.com   1.进入到数据库 use dbname 2.针 ...

  6. JAVA爬虫https_java爬虫问题一:解决使用htmlunit 时候ssl认证失败问题

    java爬虫问题一:解决使用htmlunit 时候ssl认证失败问题 凯哥Java 凯哥java 前言: 在使用htmlunit 爬取其他网站信息的时候,提示错误信息:unable to find v ...

  7. Java笔记-基于Spring Boot的SOAP双向SSL认证及WS-Security

    这里服务端开放了简单的SOAP的API,但是想获取数据时需要双向SSL以及WS-Security签名. 其中对应的xsd文件如下: <xs:schema xmlns:xs="http: ...

  8. MongoDB增加用户认证: 增加用户、删除用户、修改用户密码、读写权限、只读权限

    MongoDB增加用户认证: 增加用户.删除用户.修改用户密码.读写权限.只读权限 - 半叶寒羽

  9. 【ssl认证、证书】java中的ssl语法API说明(SSLContext)、与keytool 工具的联系

    文章目录 1. 前言 java中的ssl语法与keytool 工具的联系 2. SSLContext的体系 2.1 KeyStore 2.1.1 通过证书库文件创建: 2.1.2 随机生成自签名证书库 ...

最新文章

  1. TCP/IP协议(二)tcp/ip基础知识
  2. 使用Dezender对zend加密后的php文件进行解密
  3. 【联盛德W806上手笔记】七、I2C
  4. 三种嵌入式操作系统的分析与比析
  5. android自定义radiogroup,Android自定义RadioGroup
  6. android初步ui线程案例,android – 它是一个bug还是一个功能?在某些情况下,可以从未在UI线程上运行的任务访问UI线程...
  7. 三个关键词,看懂AI未来趋势丨不仅仅是高薪
  8. 「leetcode」77.组合【回溯算法】详解!
  9. R 学习笔记《二》 R语言初学者指南
  10. golang 格式化时间总结
  11. 根据经纬度查询具体地址
  12. 阿里云账号怎么注册?
  13. 华为系统更新彻底卸载_华为手机系统更新好吗 华为手机系统更新方法
  14. 商业虚拟专用网络技术十四 BGP/MPLS技术扩展
  15. trigger()方法
  16. python 可视化:fig, ax = plt.subplots()画多表图的3中常见样例 自定义图表格式
  17. iPhone测试软件偷开照相机,APP偷偷调用摄像头?你有权知道是谁在做
  18. Mahout之——mahout0.9注意事项SlopeOneRecommender
  19. 苹果4s怎么显示无服务器,苹果4s连接电脑没有反应怎么办 苹果4s怎么连接电脑...
  20. Web3时代加密元宇宙才是唯一可行的道路

热门文章

  1. 2022.10.23 英语背诵
  2. python 多线程实现多任务,多进程实行多任务
  3. js提交成功后,清空表单
  4. C:exit(0),_exit(0),exit(1),exit(-1)作用与区别
  5. 哈工大软件过程与工具----UML图
  6. 微信小程序web-view与H5之间交互(含支付)
  7. android音乐播放器实现,Android实现简单音乐播放器(MediaPlayer)
  8. 与 vmx86 驱动程序的版本不匹配解决方法
  9. ASCII字符代码表
  10. SuperSocket实战---使用SuperSocket的FixedHeaderReceiveFilter进行通信