Mysql8.0 开启 SSL加密 mysql_ssl_rsa_setup

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: Mysql8.0 开启 SSL加密 mysql_ssl_rsa_setup

1.安装证书

权限不足会失败

mysql_ssl_rsa_setup --datadir=/var/lib/mysql -vvv

chmod 0777 *.pem  

生成如下


[root@10-6-8-197 mysql]# ll *.pem
-rwxrwxrwx 1 root root 1675 Dec 16 11:31 ca-key.pem
-rwxrwxrwx 1 root root 1107 Dec 16 11:31 ca.pem
-rwxrwxrwx 1 root root 1107 Dec 16 11:31 client-cert.pem
-rwxrwxrwx 1 root root 1675 Dec 16 11:31 client-key.pem
-rwxrwxrwx 1 root root 1675 Dec 16 11:31 private_key.pem
-rwxrwxrwx 1 root root  451 Dec 16 11:31 public_key.pem
-rwxrwxrwx 1 root root 1107 Dec 16 11:31 server-cert.pem
-rwxrwxrwx 1 root root 1679 Dec 16 11:31 server-key.pem

2.修改/etc/my.cnf 在 [mysqld] 下面添加

ssl-ca = /var/lib/mysql/ca.pem
ssl-cert = /var/lib/mysql/server-cert.pem
ssl-key = /var/lib/mysql/server-key.pem

3.查看

systemctl restart mysqld

mysql -u root -p

ALTER USER 'root'@'localhost' IDENTIFIED BY 'AAbb1122!!';
mysql> show global variables like '%ssl%';
+-------------------------------------+--------------------------------+
| Variable_name                       | Value                          |
+-------------------------------------+--------------------------------+
| admin_ssl_ca                        |                                |
| admin_ssl_capath                    |                                |
| admin_ssl_cert                      |                                |
| admin_ssl_cipher                    |                                |
| admin_ssl_crl                       |                                |
| admin_ssl_crlpath                   |                                |
| admin_ssl_key                       |                                |
| have_openssl                        | YES                            |
| have_ssl                            | YES                            |
| mysqlx_ssl_ca                       |                                |
| mysqlx_ssl_capath                   |                                |
| mysqlx_ssl_cert                     |                                |
| mysqlx_ssl_cipher                   |                                |
| mysqlx_ssl_crl                      |                                |
| mysqlx_ssl_crlpath                  |                                |
| mysqlx_ssl_key                      |                                |
| performance_schema_show_processlist | OFF                            |
| ssl_ca                              | /var/lib/mysql/ca.pem          |
| ssl_capath                          |                                |
| ssl_cert                            | /var/lib/mysql/server-cert.pem |
| ssl_cipher                          |                                |
| ssl_crl                             |                                |
| ssl_crlpath                         |                                |
| ssl_fips_mode                       | OFF                            |
| ssl_key                             | /var/lib/mysql/server-key.pem  |
+-------------------------------------+--------------------------------+
25 rows in set (0.00 sec)

4.创建用户可以登录

创建用户

create user 'user0001'@'%' identified by 'User0001!';

GRANT ALL PRIVILEGES ON *.* TO 'user0001'@'%';

FLUSH PRIVILEGES;

ALTER USER 'user0001'@'%' IDENTIFIED WITH mysql_native_password BY 'User0001!';

设置ssl

alter user user0001@'%' require ssl; 

取消ssl

alter user user0001@'%' require none; 

5.查看用户是否使用ssl

mysql> select user,host,ssl_type,ssl_cipher  from mysql.user ;
+------------------+-----------+----------+------------------------+
| user             | host      | ssl_type | ssl_cipher             |
+------------------+-----------+----------+------------------------+
| user0001         | %         |  ANY     | 0x                     |
| mysql.infoschema | localhost |          | 0x                     |
| mysql.session    | localhost |          | 0x                     |
| mysql.sys        | localhost |          | 0x                     |
| root             | localhost |          | 0x                     |
+------------------+-----------+----------+------------------------+
5 rows in set (0.00 sec)

6.总结

1、MySQL 默认是开启SSL连接,如果强制用户使用SSL连接,那么应用程序的配置也需要明确指定SSL相关参数,否则程序会报错。
2、虽然SSL方式使得安全性提高了,但是相对地使得QPS也降低23%左右。所以要谨慎选择:

  • 2.1、对于非常敏感核心的数据,或者QPS本来就不高的核心数据,可以采用SSL方式保障数据安全性;
  • 2.2、对于采用短链接、要求高性能的应用,或者不产生核心敏感数据的应用,性能和可用性才是首要,建议不要采用SSL方式;
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
弹性计算 关系型数据库 MySQL
在线安装MySQL5.7和MySQL8.0
【4月更文挑战第30天】
14 0
|
17天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
37 0
|
2月前
|
存储 SQL 关系型数据库
MySQL 5.7和 MySQL8.0 InnoDB auto_increment 初始化的区别
在MySQL 5.7及之前,自动递增计数器只存于内存,重启后需通过查询确定初始值。从MySQL 8.0开始,计数器变化时写入重做日志,检查点时保存至数据字典,确保重启后能基于持久化的最大值初始化,避免查询,增强连续性和一致性。[[MySQL参考手册, 3099页]](https://dev.mysql.com/doc/refman/8.0/en/innodb-auto-increment-handling.html)
|
2月前
|
网络安全 数据安全/隐私保护
JavaMail给QQ邮箱发邮件报错,没有SSL加密
JavaMail给QQ邮箱发邮件报错,没有SSL加密
13 0
|
2月前
|
存储 缓存 安全
https跳过SSL认证时是不是就是不加密的,相当于http?
https跳过SSL认证时是不是就是不加密的,相当于http?
123 0
|
2月前
|
云安全 安全 网络安全
简单了解SSL--保障网络安全的加密技术
SSL(Secure Sockets Layer)是一种为互联网通信提供安全及数据完整性保障的协议。SSL通过加密技术,在客户端(如浏览器)和服务器之间建立一个加密通道,使得在两台计算机间传输的数据得以保护,防止数据被窃取或篡改。
|
3月前
|
DataWorks 关系型数据库 Shell
DataWorks数据源问题之配置ssl加密如何解决
DataWorks数据源是指DataWorks中配置的用于数据集成的外部数据源;本合集将讲解如何在DataWorks中配置和管理数据源,以及处理数据源连接和集成过程中的问题。
50 5
|
3月前
|
关系型数据库 MySQL 数据安全/隐私保护
【MySQL】 Docker 安装 MySQL8.0(mac)
【MySQL】 Docker 安装 MySQL8.0(mac)
113 0
|
4月前
|
SQL 存储 关系型数据库
MySQL 时间日期函数,流程控制函数,加密解密函数以及聚合查询函数
MySQL 时间日期函数,流程控制函数,加密解密函数以及聚合查询函数
47 0
|
Java 数据安全/隐私保护
Java实现最电话号码的简单加密源码
Java实现最电话号码的简单加密源码
18 0