处理ssl连接MySQL问题方法

本文详细介绍了如何处理SSL连接MySQL的问题,包括检查SSL状态、生成证书和密钥、启用SSL连接、配置远程安全连接、创建远程MySQL用户、测试连接以及对比SSL前后性能。通过强制使用SSL,确保了远程连接的安全性,但性能有所下降,平均QPS降低了约23%。
摘要由CSDN通过智能技术生成

1. 检查当前SSL / TLS状态

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

mysql -u root -p -h 127.0.0.1

键入以下内容以显示SSL / TLS变量的状态:

SHOW VARIABLES LIKE '%ssl%';
Output

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

| Variable_name | Value    |

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

| have_openssl  | DISABLED |
| have_ssl      | DISABLED |
| ssl_ca        |          |
| ssl_capath    |          |
| ssl_cert      |          |
| ssl_cipher    |          |
| ssl_crl       |          |
| ssl_crlpath   |          |
| ssl_key       |          |
+---------------+----------+
9 rows in set (0.01 sec)

have_openssl和have_ssl字段显示DISABLE,表示当前mysql拥有ssl的功能,但是ssl功能未默认启动。

检查我们当前连接的状态以确认:(需要root授权ssl等陆才可以(下面有介绍))

\s
Output
--------------
mysql  Ver 14.14 Distrib 5.7.17, for Linux (x86_64) using  EditLine wrapper
Connection id:      30
Current database:   
Current user:       root@localhost
SSL:         Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     5.7.17-0ubuntu0.16.04.1 (Ubuntu)
Protocol version:   10
Connection:      127.0.0.1 via TCP/IP
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:       3306
Uptime:         3 hours 38 min 44 sec
Threads: 1  Questions: 70  Slow queries: 0  Opens: 121  Flush tables: 1  Open tables: 40  Queries per second avg: 0.005
--------------

上面显示的SSL: Not in use说明,当前连接没有在SSL安全连接中
关闭当前MySQL会话:

exit

2.生成SSL / TLS证书和密钥

要启用到MySQL的SSL连接,我们首先需要生成相应的证书和密钥文件。 MySQL 5.7及更高版本提供了一个名为mysql_ssl_rsa_setup的实用程序,我们使用root权限生成相关的请求文件和证书对,为了能让mysql有权限去使用,命令中应该使用选项和参数--uid=mysql来指定uid。

sudo mysql_ssl_rsa_setup --uid=mysql

命令执行生成证书的过程如下:

root@simon-pc:/home/simon# mysql_ssl_rsa_setup --uid=mysql



Generating a 2048 bit RSA private key
...........+++
.................................................................................+++
writing new private key to 'ca-key.pem'
-----
Generating a 2048 bit RSA private key
.+++
....................................................................+++
writing new private key to 'server-key.pem'
-----
Generating a 2048 bit RSA private key
...................................................+++
...............+++
writing new private key to 'client-key.pem'
-----
root@simon-pc:/home/simon#

检查生成的文件:

root@simon-pc:/home/simon# sudo find /var/lib/mysql -name '*.pem' -ls
   655857      4 -rw-------   1 mysql    mysql        1679 Feb  1 09:36 /var/lib/mysql/ca-key.pem
   657410      4 -rw-------   1 mysql    mysql        1679 Feb  1 09:36 /var/lib/mysql/server-key.pem
   657421      4 -rw-r--r--   1 mysql    mysql        1107 Feb  1 09:36 /var/lib/mysql/server-cer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值