1.手动创建自认证证书

1.1 创建CA证书

openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -nodes -days 3600 \-key ca-key.pem -out ca.pem

1.2 创建服务端证书,去除加密,使用CA签名

    server-cert.pem = public key, server-key.pem = private key
openssl req -newkey rsa:2048 -days 3600 \-nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -in server-req.pem -days 3600 \-CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

1.3 创建客户端证书,去除加密,使用CA签名

    client-cert.pem = public key, client-key.pem = private key
openssl req -newkey rsa:2048 -days 3600 \-nodes -keyout client-key.pem -out client-req.pem
openssl rsa -in client-key.pem -out client-key.pem
openssl x509 -req -in client-req.pem -days 3600 \-CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

1.4 证书生成后,进行校验:

openssl verify -CAfile ca.pem server-cert.pem client-cert.pem

2.修改my.cnf文件,mysqld下面增加如下配置项

[mysqld]
ssl-ca=/home/mysql/sslconfig/ca.pem
ssl-cert=/home/mysql/sslconfig/server-cert.pem
ssl-key=/home/mysql/sslconfig/server-key.pem

说明:pem配置文件中在test目录下有,但是最好自己生成
/home/mysql/mysql-5.5.35-linux2.6-x86_64/mysql-test/std_data

3.重启数据库

/etc/init.d/mysqld restart

4.登陆验证

4.1查看服务器变量have_ssl,是否支持SSL

SHOW VARIABLES LIKE 'have_%ssl';
SHOW VARIABLES LIKE '%ssl%';
如果为yes,表示服务端已经开启SSL
查看服务ssl等状态
SHOW STATUS LIKE 'Ssl_cipher';
STATUS或者\s
SSL: Cipher in use is DHE-RSA-AES256-SHA表示客户端已经 使用SSL连接

4.2客户端登陆

客户端无SSL登陆:

mysql -uroot -pzdh1234 或者 mysql -uroot -pzdh1234 --ssl=0

客户端开启SSL登陆:

mysql -uroot -hlocalhost -pzdh1234 --ssl-ca=/home/mysql/sslconfig/ca.pem

4.3创建用户强制使用SSL登陆:

GRANT ALL PRIVILEGES ON . TO 'ssluser'@'%' IDENTIFIED BY 'zdh1234' REQUIRE SSL;
本机登陆需要单独新增localhost
GRANT ALL PRIVILEGES ON . TO 'ssluser'@'localhost' IDENTIFIED BY 'zdh1234' REQUIRE SSL;
查看用户:
select host,user,password from mysql.user;
修改密码,需要重启mysql:

update user set password=password("zdh1234") where user="root" and host='zdh-11';

客户端无SSL登陆:

mysql -ussluser -pzdh1234

返回错误:ERROR 1045 (28000): Access denied for user 'ssluser'@'localhost' (using password: YES)
客户端开启SSL登陆:

mysql -ussluser -hlocalhost -pzdh1234 \--ssl-ca=/home/mysql/sslconfig/ca.pem

如果不填密码或者--ssl-ca都无法登陆

mysql -ussluser -hlocalhost -pzdh1234 \--ssl-cert=/home/mysql/sslconfig/client-cert.pem \--ssl-key=/home/mysql/sslconfig/client-key.pemmysql -ussluser -hlocalhost -pzdh1234 \--ssl-ca=/home/mysql/sslconfig/ca.pem \--ssl-cert=/home/mysql/sslconfig/client-cert.pem \--ssl-key=/home/mysql/sslconfig/client-key.pem

4.4客户端连接时校验服务端认证:

由于创建server使用的服务器域名为zdh-11
校验失败,无法登陆:

mysql -uroot -hlocalhost -pzdh1234  --ssl-ca=/home/mysql/sslconfig/ca.pem --ssl-verify-server-cert

校验成功,可以登陆:

mysql -uroot -hzdh-11 -pzdh1234 --ssl-ca=/home/mysql/sslconfig/ca.pem --ssl-verify-server-cert

MySQL启用SSL连接相关推荐

  1. MySQL的 SSL 连接配置

    MySQL的 SSL 连接配置 1.#创建 CA 私钥和 CA 证书 /etc/mysqlCert 生成一个 CA 私钥 openssl genrsa 2048 > ca-key.pem 生成一 ...

  2. Mysql 开启ssl连接

    注意!本文是针对Mysql 5.7版本以上数据库,版本较低者可看这一篇博客:https://www.cnblogs.com/zhoujinyi/p/4191096.html 1. 检查当前SSL / ...

  3. MySQL使用ssl连接,java通过ssl连接数据库

    java 通过ssl连接数据库 MySQL使用ssl连接,java通过ssl连接数据库 MySQL驱动与MySQL版本的关系 什么是SSL? MySQL5.7.34 ssl配置文件和参数 MySQL服 ...

  4. mysql启用ssl

    作者:[吴业亮] 博客:https://wuyeliang.blog.csdn.net/ 1.制作ssl证书 [root@www ~]# cd /etc/pki/tls/certs [root@www ...

  5. mysql的ssl连接失败_MySQL数据库的SSL连接失败

    我有一个运行在amazonec2实例(linux)上的python脚本,它从源代码中获取数据并输出pandas数据帧给我.我想把这个数据帧发送到amazonrds上的MySQL.但是当我运行脚本时,它 ...

  6. mysql 禁用ssl连接_MySQL建立SSL连接问题,设置useSSL=false显式禁用SSL,或者设置useSSL=true...

    You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide tr ...

  7. Ubuntu安装Mysql启用远程连接

    1.用apt-get安装mysql #更新一下apt 仓库 sudo apt-get update#安装mysql-service sudo apt-get install mysql-server ...

  8. mysql ssl jdbc_Mysql启用SSL以及JDBC连接Mysql配置

    文章目录 一.Mysql启用SSL配置 1.检查mysql是否支持ssl 2.设置用户是否使用ssl连接 1.查看用户是否使用SSL连接 2.强制某用户使用SSL连接 3.测试不使用ssl能否连接上 ...

  9. 处理ssl连接MySQL问题方法

    1. 检查当前SSL / TLS状态 我们将使用-h指定IPv4本地环回接口,以强制客户端与TCP连接,而不是使用本地套接字文件. 这将允许我们检查TCP连接的SSL状态: mysql -u root ...

最新文章

  1. 解决ubuntu上opengl的问题
  2. 深度去雨--Deep Joint Rain Detection and Removal from a Single Image
  3. 杨氏矩阵定义及其查找的实现C++
  4. 【JAVA基础篇】基本数据类型及自动类型转换
  5. c语言项开发班级登入系统,c语言--班级管理系统
  6. 5折交叉验证_交叉验证的方法主要分为哪些?
  7. windows下如何用python抓取邮件内容和附件_用python下载邮件内容
  8. linux扩容系统盘分区,系统盘扩容 扩展分区与文件系统_Linux系统盘
  9. JavaScript数据结构与算法基础学习笔记03----链表与双向链表
  10. 【Response】全面总结并理解response
  11. selenium 与浏览器 以及浏览器驱动版本问题
  12. 中国状元”在美国读大学后对中国教育的感悟
  13. 电视机尺寸一览表2022
  14. Eclipse运行tomcat出现错误“An incompatible version [1.1.33] of the APR based。。。 ”问题的解决
  15. SLAM数据集TUM,KITTI,EuRoC数据集的下载地址与真实轨迹文件的查找
  16. 垃圾收集器调优相关参数
  17. 关于chm提示 已取消到该网页的导航的解决方法(转载,忘记出处)
  18. 电脑反复出现蓝屏重启现象
  19. 基于单片机的二维高精度液晶显示电子指南针
  20. 考研复习计划(8.20-8.31)

热门文章

  1. SQLAlchemy 简单笔记
  2. Consider defining a bean named 'entityManagerFactory' in your configuration解决办法
  3. Postman从入门到入门
  4. linux目录架构及常用的基本命令
  5. 如何在同一台服务器上安装多套通达OA
  6. Direct 3D学习笔记(三)——光照与材质
  7. Python_Socket实现简单的ssh/ftp
  8. php下载当前页面,php实现当前页面点击下载文件的简单方法
  9. 外链引入css有哪些方式_外链怎么发才会快速收录?
  10. 7-2 整除分块 (15 分)