使用客户端证书登录MySQL

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 生成证书使用openssl req创建X.509证书,下面的命令创建有效期10年的私钥,使用man req可以查询这个命令的帮助。


01

生成证书


使用openssl req创建X.509证书,下面的命令创建有效期10年的私钥,使用man req可以查询这个命令的帮助。



oracle@yao mysql$ openssl req -newkey rsa:2048 -days 3650 -nodes -keyout yao1-key.pem -out yao1-req.pemGenerating a 2048 bit RSA private key............................................................................................+++......+++writing new private key to 'yao1-key.pem'-----You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:CNState or Province Name (full name) []:Locality Name (eg, city) [Default City]:Organization Name (eg, company) [Default Company Ltd]:Organizational Unit Name (eg, section) []:Common Name (eg, your name or your server's hostname) []:Email Address []:
Please enter the following 'extra' attributesto be sent with your certificate requestA challenge password []:An optional company name []:


检查刚刚生成的证书:



oracle@yao mysql$ ll *.pem-rw-r--r--. 1 oracle oinstall 1704 12月  8 18:57 yao1-key.pem-rw-r--r--. 1 oracle oinstall  952 12月  8 18:57 yao1-req.pem

这两个文件是私钥和请求证书。

下面的命令生成文件名是yao1-cert.pem的公钥:



oracle@yao mysql$ sudo openssl x509 -req -in yao1-req.pem -days 3650 -CA /u01/mysql/ca.pem -CAkey /u01/mysql/ca-key.pem -set_serial 01 -out yao1-cert.pemSignature oksubject=/C=CN/L=Default City/O=Default Company LtdGetting CA Private Key

校验公钥的有效性:




oracle@yao mysql$ openssl verify -CAfile /u01/mysql/ca.pem /u01/mysql/server-cert.pem yao1-cert.pem /u01/mysql/server-cert.pem: OKyao1-cert.pem: OK

02

创建只有证书没有密码的账号


相应命令如下:




mysql> CREATE USER yao1 REQUIRE SUBJECT '/C=CN/L=Default City/O=Default Company Ltd';ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> select * from component;+--------------+--------------------+-------------------------------------+| component_id | component_group_id | component_urn                       |+--------------+--------------------+-------------------------------------+|            1 |                  1 | file://component_validate_password  ||            2 |                  2 | file://component_log_filter_dragnet |+--------------+--------------------+-------------------------------------+2 rows in set (0.00 sec)
mysql> uninstall component 'file://component_validate_password';Query OK, 0 rows affected (0.00 sec)
mysql> CREATE USER yao1 REQUIRE SUBJECT '/C=CN/L=Default City/O=Default Company Ltd';Query OK, 0 rows affected (0.00 sec)

需要卸载component_validate_password组件后才能创建无密码的账号。

03

使用证书登录mysql和mysqlsh


登录mysql,在输入密码处直接回车即可登录





oracle@yao mysql$  mysql -uyao1 --ssl-cert yao1-cert.pem --ssl-key yao1-key.pem -p --ssl_ca=/u01/mysql/ca.pemEnter password:Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 3685Server version: 8.0.31 MySQL Community Server - GPL
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
You are enforcing ssl connection via unix socket. Please considerswitching ssl off as it does not make connection via unix socketany more secure.mysql> \s--------------mysql  Ver 8.0.31 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id:          3685Current database:Current user:           yao1@localhostSSL:                    Cipher in use is ECDHE-RSA-AES128-GCM-SHA256Current pager:          stdoutUsing outfile:          ''Using delimiter:        ;Server version:         8.0.31 MySQL Community Server - GPLProtocol version:       10Connection:             Localhost via UNIX socketServer characterset:    utf8mb4Db     characterset:    utf8mb4Client characterset:    utf8mb4Conn.  characterset:    utf8mb4UNIX socket:            /u01/mysql/mysql.sockBinary data as:         HexadecimalUptime:                 3 days 5 hours 6 min 47 sec
Threads: 5  Questions: 11001  Slow queries: 0  Opens: 4565  Flush tables: 3  Open tables: 319  Queries per second avg: 0.039--------------
mysql>

登录到MySQL Shell,到密码处直接回车即可:





oracle@yao mysql$ mysqlsh mysql://yao1@127.0.0.1 --ssl-cert yao1-cert.pem --ssl-key yao1-key.pemPlease provide the password for 'yao1@127.0.0.1':Save password for 'yao1@127.0.0.1'? [Y]es/[N]o/Ne[v]er (default No):MySQL Shell 8.0.31
Copyright (c) 2016, 2022, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its affiliates.Other names may be trademarks of their respective owners.
Type '\help' or '\?' for help; '\quit' to exit.Creating a Classic session to 'yao1@127.0.0.1?ssl-cert=yao1-cert.pem&ssl-key=yao1-key.pem'Fetching schema names for auto-completion... Press ^C to stop.Your MySQL connection id is 3686Server version: 8.0.31 MySQL Community Server - GPLNo default schema selected; type \use <schema> to set one. MySQL  127.0.0.1:3306 ssl  JS >


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
10月前
|
关系型数据库 MySQL 网络安全
【YashanDB知识库】如何使用MySQL客户端链接YashanDB
【YashanDB知识库】如何使用MySQL客户端链接YashanDB
【YashanDB知识库】如何使用MySQL客户端链接YashanDB
|
12月前
|
安全 关系型数据库 MySQL
CentOS7仅安装部署MySQL80客户端
通过上述步骤,你可以在CentOS 7上成功安装并配置MySQL 8.0客户端。这个过程确保你能够使用MySQL客户端工具连接和管理远程的MySQL数据库,而不需要在本地安装MySQL服务器。定期更新MySQL客户端可以确保你使用的是最新的功能和安全修复。
1073 16
|
SQL 关系型数据库 MySQL
MySQL操作利器大公开!这几款客户端让你事半功倍
本文介绍了多种MySQL数据库管理工具,包括命令行工具、图形化用户界面(GUI)工具和Web界面工具。主要工具有: 1. **Navicat for MySQL**:功能强大,支持多种数据库管理任务,但需付费。 2. **DBeaver**:开源免费,支持多种数据库,安装包较大。 3. **MySQL Workbench**:官方提供的图形化工具,适合MySQL全家桶用户。 4. **HeidiSQL**:轻量级Windows客户端,简单易用。 5. **phpMyAdmin**:基于Web的管理工具,易于部署和使用。 6. **SQLyog**:适用于Windows,功能丰富,有免费
1856 3
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
1076 2
|
关系型数据库 MySQL Python
mysql之python客户端封装类
mysql之python客户端封装类
|
关系型数据库 MySQL Linux
数据类型和运算符(MySQL服务器的安装,MySQL客户端,数据类型,运算符,MySQL的语法规范)
无论是对于初学者还是有经验的开发者,了解MySQL的安装、客户端使用、数据类型、运算符和语法规范都是至关重要的。这不仅有助于高效地管理和查询数据,而且对于设计和实现数据库解决方案来说是基础工作。通过深入学习和实践这些知识,您可以更好地发挥MySQL数据库的强大功能。
124 2
|
存储 分布式计算 DataWorks
DataWorks产品使用合集之在本地客户端一直无法连接ADB MySQL,是什么原因
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
233 0
|
4月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
174 3
|
4月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。

推荐镜像

更多