MySQL5.7配置SSL加密的方式比较简单。

生成证书文件

[root@ ~]# bin/mysql_ssl_rsa_setup --datadir=/data/database/mysql

[root@ ~]# chown mysql:mysql /data/database/mysql -R 

[root@ ~]# ll /data/database/mysql -rt
.....
-rw------- 1 mysql mysql 1675 Mar 28 16:35 ca-key.pem # CA 私钥
-rw-r--r-- 1 mysql mysql 1082 Mar 28 16:35 ca.pem # 自签的CA证书,客户端连接也需要提供
-rw-r--r-- 1 mysql mysql 1086 Mar 28 16:35 client-cert.pem # 客户端连接服务端需要提供的证书文件
-rw------- 1 mysql mysql 1675 Mar 28 16:35 client-key.pem #客户端连接服务端需要提供的私钥文件
-rw------- 1 mysql mysql 1679 Mar 28 16:35 private_key.pem #私钥公钥的私有成员
-rw-r--r-- 1 mysql mysql 451 Mar 28 16:35 public_key.pem #私钥公钥的共有成员
-rw-r--r-- 1 mysql mysql 1086 Mar 28 16:35 server-cert.pem #服务端证书文件
-rw------- 1 mysql mysql 1679 Mar 28 16:35 server-key.pem #服务端私钥文件

配置:

[root@ ~]# vim /etc/my.cnf
#ssl
ssl-ca=/data/database/mysql/ca.pem
ssl-cert=/data/database/mysql/server-cert.pem
ssl-key=/data/database/mysql/server-key.pem

然后重启一下

查看一下:

(root@localhost) [(none)]> show global variables like '%ssl%';
+---------------+--------------------------------------+
| Variable_name | Value |
+---------------+--------------------------------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | /data/database/mysql/ca.pem |
| ssl_capath | |
| ssl_cert | /data/database/mysql/server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | /data/database/mysql/server-key.pem |
+---------------+--------------------------------------+
9 rows in set (0.01 sec) (root@localhost) [(none)]> status
--------------
/usr/local/mysql57/bin/mysql Ver 14.14 Distrib 5.7.19-17, for Linux (x86_64) using 6.0 Connection id: 3
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.19-17-log Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 34 sec Threads: 1 Questions: 7 Slow queries: 0 Opens: 109 Flush tables: 1 Open tables: 102 Queries per second avg: 0.205

创建一个SSL登陆的账号

(root@localhost) [(none)]>  create user admin@127.0.0.1 identified by '123456' require ssl ;   #require ssl表示强制使用SSL
(root@localhost) [(none)]> grant all on *.* to admin@127.0.0.1 ;
(root@localhost) [(none)]> flush privileges;

登录

使用unix socket无法加密呀

通过--ssl-cert=/xxx/client-cert.pem --ssl-key=/xxx/client-key.pem 指定客户端证书和key

 mysql -uadmin -p123456 -P3306 -h 127.0.0.1 --ssl-cert=/data/database/mysql/client-cert.pem  --ssl-key=/data/database/mysql/client-key.pem

查看一下状态:

admin@127.0.0.1) [(none)]> status
--------------
/usr/local/mysql57/bin/mysql Ver 14.14 Distrib 5.7.19-17, for Linux (x86_64) using 6.0 Connection id: 29
Current database:
Current user: admin@127.0.0.1
SSL: Cipher in use is DHE-RSA-AES256-SHA
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.19-17-log Source distribution
Protocol version: 10
Connection: 127.0.0.1 via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 30 min 2 sec Threads: 1 Questions: 108 Slow queries: 0 Opens: 139 Flush tables: 1 Open tables: 132 Queries per second avg: 0.059
--------------

查看加密方式

(admin@127.0.0.1) [(none)]>  show status like 'ssl_cipher';
+---------------+--------------------+
| Variable_name | Value |
+---------------+--------------------+
| Ssl_cipher | DHE-RSA-AES256-SHA |
+---------------+--------------------+
1 row in set (0.00 sec)

查看SSL版本:

(admin@127.0.0.1) [(none)]> show session status like 'ssl_version';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Ssl_version | TLSv1.1 |
+---------------+---------+
1 row in set (0.00 sec)

MySQL5.7 开启SSL的更多相关文章

  1. 你的MySQL服务器开启SSL了吗?

    最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的.本篇主 ...

  2. 你的MySQL服务器开启SSL了吗?SSL在https和MySQL中的原理思考

    最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的.本篇主 ...

  3. 你的MySQL服务器开启SSL了吗?(转载)

    最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的.本篇主 ...

  4. CentOS7下Apache及Tomcat开启SSL

    安装: 复制代码 yum install -y openssl #使用openssl可手动创建证书 yum install -y httpd yum install -y mod_ssl 防火墙打开8 ...

  5. wamp下开启SSL,解决APACHE启动问题

    wamp开启SSL解决wamp5_1.7.4中APACHE启动问题 1.#修改httpd.conf文件LoadModule ssl_module modules/mod_ssl.soInclude c ...

  6. 在linux下的apache配置https协议,开启ssl连接

    环境:linux 配置https协议,需要2大步骤: 一.生成服务器证书 1.安装openssl软件 yum install -y openssl mod_ssl 2.生成服务器私匙,生成server ...

  7. 简单配置Nginx 指向本地端口,并开启SSL

    简单配置Nginx 指向本地端口,并开启SSL,如果要开启SSL,必须使用域名去申请SSL key,一般是两个文件,一般是要收费的. # 在/etc/nginx/nginx.conf 的文件中有下面一 ...

  8. 使用JavaMail发送邮件,465端口开启ssl加密传输

    package com.wangxin.test; import java.security.Security; import java.util.Date; import java.util.Pro ...

  9. CentOS 使用 LAMP 环境开启 SSL 搭建 WordPress

    环境阿里云新装CentOS 7.4, 使用yum(非编译安装)搭建LAMP, CA证书为阿里云免费提供的, WordPress为官网下载 安装 LAMP 并开启 HTTPS 1, 关闭防火墙 # sy ...

随机推荐

  1. Openresty 安装第三方插件

    Openresty 安装第三方插件 程序媛没有夜生活 2016.08.02 15:33* 字数 167 阅读 1283评论 0喜欢 2 在安装之前,我们先来看一下我们现有的模块. 1.将需要安装的插件 ...

  2. (转)以太坊 钱包 创建 导入 Keystore

    最近闲来无事 研究了下以太坊钱包 下边分享下 准备工作 : 需要用到的加密:BIP32 BIP39 BIP44 SCRYPT 加密算法 githab地址 https://github.com/Nova ...

  3. 对比损失(Contrastive Loss)学习【转载】

    转自:https://blog.csdn.net/autocyz/article/details/53149760 https://www.tensorflow.org/tutorials/repre ...

  4. c#中取整和取余

    "%"为取余. "/"号整型运算是取整,浮点运算时为除法运算.如54/10结果为5,54.0/10.0结果为5.4.而且取整时不进行四舍五入只取整数部分,如54 ...

  5. 别再说找不到Python练手项目了,这80个拿去过冬

    开头真的很重要!!!一个吻,一部小说,一篇文章......好的开头就像一个漂亮女孩的问候,问完了,你还期待着她接下来会对你说些什么甜蜜的话呢. 真可惜!我不是漂亮女孩,我的这个开头也不好.但开头不好, ...

  6. Laravel传值总结

    Laravel传值:with,view(),compact方法一:with public function index() { $title = '文章标题1'; return view('artic ...

  7. Windows PyCharm永久激活

    1.下载 链接: https://pan.baidu.com/s/1LvQozk5lXdyk2p8qgGsr3A 提取码: x1t5 放置到 pycharm安装目录的\bin目录下(位置可随意,只要配 ...

  8. 实现多线程异步自动上传本地文件到 Amazon S3

    最近抽空做个小工具,使用AWSSDK 对本地文件目录监控,并自动同步上传文件到S3 的过程,使用的是多线程异步上传,针对大文件进行了分块 参考文献: https://www.codeproject.c ...

  9. 纯css瀑布流布局

    由于公司的项目需要才用到瀑布流布局 因为后台返回的json直接循环出来的,所以不能做左右浮动的那种,所以才用到了瀑布流布局 16年之前的瀑布流布局基本都时基于js或者直接用jq插件的,但是随着技术的进 ...

  10. 本地计算机上的SQLServer(MSSQLSERVER)服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

    SQLServer的服务启动问题: 本地计算机上的SQLServer(MSSQLSERVER)服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止 出现这个问题导致无法启动SQLServer服 ...