MySQL 5.7 的SSL加密方法

MySQL 5.7.6或以上版本

(1)创建证书开启SSL验证

--安装openssl

yum install -y openssl

openssl version

OpenSSL 1.0.1e-fips 11 Feb 2013

--安装证书

/usr/local/mysql/bin/mysql_ssl_rsa_setup   --datadir=/data/mysql/mysql3306/data

--修改权限

chown -R mysql:mysql /data/mysql/mysql3306/data

pwd

/data/mysql/mysql3306/data

[root@VM_45_133_centos Wed Jun 28 10:51:22 data]# ll

total 1024072

-rw-r----- 1 mysql mysql         56 Jun 19 17:56 auto.cnf

-rw------- 1 root  root        1679 Jun 28 10:48 ca-key.pem

-rw-r--r-- 1 root  root        1074 Jun 28 10:48 ca.pem

-rw-r--r-- 1 root  root        1078 Jun 28 10:48 client-cert.pem

-rw------- 1 root  root        1679 Jun 28 10:48 client-key.pem

-rw-r----- 1 mysql mysql        672 Jun 28 10:47 ib_buffer_pool

-rw-r----- 1 mysql mysql 1048576000 Jun 28 10:47 ibdata1

drwxr-x--- 2 mysql mysql       4096 Jun 19 17:57 mysql

drwxr-x--- 2 mysql mysql       4096 Jun 19 17:57 performance_schema

-rw------- 1 root  root        1679 Jun 28 10:48 private_key.pem

-rw-r--r-- 1 root  root         451 Jun 28 10:48 public_key.pem

drwxr-x--- 2 mysql mysql       4096 Jun 23 10:48 school

-rw-r--r-- 1 root  root        1078 Jun 28 10:48 server-cert.pem

-rw------- 1 root  root        1675 Jun 28 10:48 server-key.pem

drwxr-x--- 2 mysql mysql      12288 Jun 19 17:57 sys

-rw-r----- 1 mysql mysql        418 Jun 20 14:14 VM_45_133_centos.log

客户端连接需要的证书,当然不用证书也是可以的

-rw-r--r-- 1 root  root        1074 Jun 28 10:48 ca.pem

-rw-r--r-- 1 root  root        1078 Jun 28 10:48 client-cert.pem

-rw------- 1 root  root        1679 Jun 28 10:48 client-key.pem

-rw------- 1 root  root        1679 Jun 28 10:48 private_key.pem

服务器上的证书

-rw-r--r-- 1 root  root        1074 Jun 28 10:48 ca.pem

-rw------- 1 root  root        1679 Jun 28 10:48 ca-key.pem

-rw-r--r-- 1 root  root         451 Jun 28 10:48 public_key.pem

-rw-r--r-- 1 root  root        1078 Jun 28 10:48 server-cert.pem

-rw------- 1 root  root        1675 Jun 28 10:48 server-key.pem

--修改my.cnf

#########SSL#############

ssl-ca = /data/mysql/mysql3306/data/ca.pem

ssl-cert = /data/mysql/mysql3306/data/server-cert.pem

ssl-key = /data/mysql/mysql3306/data/server-key.pem

(2)重启mysql

/etc/init.d/mysql stop

/etc/init.d/mysql start

--查看ssl参数状态,查看have_ssl,为YES,这表示已经开始支持SSL了

show global variables like ‘%ssl%‘;

+---------------+--------------------------------------------+

| Variable_name | Value                                      |

+---------------+--------------------------------------------+

| have_openssl  | YES                                        |

| have_ssl      | YES                                        |

| ssl_ca        | /data/mysql/mysql3306/data/ca.pem          |

| ssl_capath    |                                            |

| ssl_cert      | /data/mysql/mysql3306/data/server-cert.pem |

| ssl_cipher    |                                            |

| ssl_crl       |                                            |

| ssl_crlpath   |                                            |

| ssl_key       | /data/mysql/mysql3306/data/server-key.pem  |

+---------------+--------------------------------------------+

show global status like ‘%ssl%‘;

+--------------------------------+--------------------------+

| Variable_name                  | Value                    |

+--------------------------------+--------------------------+

| Com_show_processlist           | 0                        |

| Ssl_accept_renegotiates        | 0                        |

| Ssl_accepts                    | 0                        |

| Ssl_callback_cache_hits        | 0                        |

| Ssl_cipher                     |                          |

| Ssl_cipher_list                |                          |

| Ssl_client_connects            | 0                        |

| Ssl_connect_renegotiates       | 0                        |

| Ssl_ctx_verify_depth           | 0                        |

| Ssl_ctx_verify_mode            | 0                        |

| Ssl_default_timeout            | 0                        |

| Ssl_finished_accepts           | 0                        |

| Ssl_finished_connects          | 0                        |

| Ssl_server_not_after           | Jun 26 02:48:05 2027 GMT |

| Ssl_server_not_before          | Jun 28 02:48:05 2017 GMT |

| Ssl_session_cache_hits         | 0                        |

| Ssl_session_cache_misses       | 0                        |

| Ssl_session_cache_mode         | Unknown                  |

| Ssl_session_cache_overflows    | 0                        |

| Ssl_session_cache_size         | 0                        |

| Ssl_session_cache_timeouts     | 0                        |

| Ssl_sessions_reused            | 0                        |

| Ssl_used_session_cache_entries | 0                        |

| Ssl_verify_depth               | 0                        |

| Ssl_verify_mode                | 0                        |

| Ssl_version                    |                          |

+--------------------------------+--------------------------+

查看SSL的加密方式

show global variables like ‘tls_version‘;

+---------------+---------------+

| Variable_name | Value         |

+---------------+---------------+

| tls_version   | TLSv1,TLSv1.1 |

+---------------+---------------+

(3)配置SSL用户

取消ssl验证

grant all privileges on *.* to abcssl@‘%‘ identified by ‘123456‘ require none;

alter user abcssl@‘%‘ require none;

--强制ssl验证,即使设置了强制ssl,在登录时候使用--ssl-mode=disable依然可以避开ssl验证

grant all privileges on *.* to abcssl@‘%‘ identified by ‘123465‘ require ssl;

alter user abcssl@‘%‘ require ssl;

查看是否开启强制用户使用SSL

select user,host,ssl_type,ssl_cipher  from mysql.user;

+-----------+-----------+----------+------------+

| user      | host      | ssl_type | ssl_cipher |

+-----------+-----------+----------+------------+

| root      | %         |          |            |

| mysql.sys | localhost |          |            |

| abcssl    | %         | ANY      |            |

+-----------+-----------+----------+------------+

(4)连接数据库的时候,带上SSL

不指定客户端证书方式

5.6

--ssl、--disable-ssl、--skip-ssl:在mysql5.7是将被废弃的选项,将来版本不再支持,建议使用--ssl-mode选项,

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl  默认为1

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl=0

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl=1  默认为1

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --disable-ssl

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --skip-ssl

5.7

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl-mode=disable

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl-mode=required  默认required

从另一台机器连接过去也可以ssl加密,表明不需要安装客户端证书的

/usr/local/mysql/bin/mysql -uroot -p -h10.105.45.133 --ssl-mode=required

指定客户端证书方式,5.6的方式,5.7也可以用

/usr/local/mysql/bin/mysql --ssl-ca=/data/mysql/mysql3306/data/ca.pem \

--ssl-cert=/data/mysql/mysql3306/data/client-cert.pem \

--ssl-key=/data/mysql/mysql3306/data/client-key.pem \

-uroot -p -h127.0.0.1

(5)连接验证连接是否用了ssl

\s == status

--------------

/usr/local/mysql/bin/mysql  Ver 14.14 Distrib 5.7.18, for linux-glibc2.5 (x86_64) using  EditLine wrapper  客户端版本

Connection id:        69

Current database:

Current user:        root@127.0.0.1

SSL:            Cipher in use is DHE-RSA-AES256-SHA

Current pager:        stdout

Using outfile:        ‘‘

Using delimiter:    ;

Server version:        5.7.18-log MySQL Community Server (GPL)

Protocol version:    10

Connection:        127.0.0.1 via TCP/IP

Server characterset:    utf8mb4

Db     characterset:    utf8mb4

Client characterset:    utf8

Conn.  characterset:    utf8

TCP port:        3306

Uptime:            28 min 14 sec

Threads: 2  Questions: 1755  Slow queries: 0  Opens: 114  Flush tables: 1  Open tables: 102  Queries per second avg: 1.036

--------------

JDBC客户端的解决方法

连接字符串url中加入ssl=true或false:

url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding=utf8&useSSL=true

MySQL 5.7 的SSL加密方法

标签:page   linu   rac   rom   user   设置   enter   char   nis

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/MYSQLZOUQI/p/7089135.html

mysql5.7 skip ssl_MySQL 5.7 的SSL加密方法相关推荐

  1. MySQL 5.7 have_ssl 的SSL加密方法

    MySQL 5.7 have_ssl 的SSL加密方法 MySQL 5.7.6或以上版本 (1)创建证书开启SSL验证 –安装openssl yum install -y openssl openss ...

  2. MySQL:安装和基于SSL加密的主从复制(基于5.7)

    小生博客:http://xsboke.blog.51cto.com -------谢谢您的参考,如有疑问,欢迎交流 目录: --------mysql-5.7.13简介及安装 --------配置my ...

  3. 教你构建MySQL主从结构,实现基于SSL加密的主从同步机制。

    实验环境RHEL6.4 admin1.tuchao.com    192.168.1.201    主服务器 admin2.tuchao.com    192.168.1.202    从服务器 先在 ...

  4. MySQL(MariaDB)的 SSL 加密复制

    背景: 在默认的主从复制过程或远程连接到MySQL/MariaDB所有的链接通信中的数据都是明文的,在局域网内连接倒问题不大:要是在外网里访问数据或则复制,则安全隐患会被放大很多.由于项目要求需要直接 ...

  5. mysql主从同步加密_教你构建MySQL主从结构,实现基于SSL加密的主从同步机制

    实验环境RHEL6.4 admin1.tuchao.com    192.168.1.201    主服务器 admin2.tuchao.com    192.168.1.202    从服务器 先在 ...

  6. Linux配置mysql数据库SSL加密

    一.SSL介绍 SSL(Secure Socket Layer:安全套接字层)利用数据加密.身份验证和消息完整性验证机制,为基于TCP等可靠连接的应用层协议提供安全性保证. SSL协议提供的功能主要有 ...

  7. python3.7.2 pip 出现locations that require TLS/SSL异常处理方法

    python3.7.2 pip 出现locations that require TLS/SSL异常处理方法 参考文章: (1)python3.7.2 pip 出现locations that req ...

  8. mysql5.6启动占用内存很大的解决方法

    mysql5.6启动占用内存很大的解决方法 参考文章: (1)mysql5.6启动占用内存很大的解决方法 (2)https://www.cnblogs.com/musings/p/5913225.ht ...

  9. SSL应用系列之二:为Web站点实现SSL加密访问

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://jeffyyko.blog.51cto.com/28563/141322 上一节中 ...

最新文章

  1. CVPR2020论文点评: AdderNet(加法网络)
  2. sql server 服务器之间传递消息,SQL Server 2008 Service Broker教程 - 无法接收消息(transmission_status中的异常)...
  3. Web设计师须知的10项SEO技巧
  4. 【机器学习实践】Jupyter Notebook安装 侧边导航栏功能 操作及其他常用扩展功能介绍...
  5. HTML和CSS 基本要点必看
  6. 安卓Dialog弹出对话框全解:包含了AlertDialog,DialogFragment
  7. wordpress自定义404页面
  8. UEditor富文本编辑器图片粘贴和上传问题
  9. Linux,IP归属地查询(nali)
  10. 工作小结_2016年2月23日23:16:59
  11. 常用英语命令(音标,释义)
  12. office之word开启参考线对齐
  13. 语音处理/语音识别基础(六)- 语音的端点检测(EPD/VAD)
  14. error:LNK2005 已经在*.obj文件中定义的解决办法
  15. “精致穷”的年轻人养出百亿小样经济
  16. 1034: 夏季促销 C语言
  17. MediaPlayer详解和使用
  18. 啊!我的专业不只是修电脑,装系统
  19. Python语言用法总结
  20. 安卓中间件 hello dema解析

热门文章

  1. ACL 2021 | 复旦大学邱锡鹏组:面向不同NER子任务的统一生成框架
  2. 语音识别:繁华背后,危机初现
  3. 直播报名 | 小身材大能量!用英伟达智能小车Jetbot玩转深度学习
  4. 解读小米MoGA:超过MobileNetV3的移动端GPU敏感型搜索
  5. 每周一起读 #02 | ICML 2019:基于粒子的变分推断加速方法
  6. 【建议收藏】二叉树的序列化与反序列化
  7. 【LeetCode】LeetCode之删除并获得点数——动态规划、排序+动态规划
  8. 面试官:了解雪崩效应吗?了解Hystrix吗?怎么解决雪崩效应吗?(大型社死现场,教你运筹帷幄之中)
  9. 锁究竟锁住的是什么?
  10. 浙江理工大学信息学院本科生创新项目总结报告——简单的后台用户管理项目