我已将服务器配置为允许SSL,并修改了客户端〜/ .my.cnf,因此我使用SSL:

[client]
ssl
ssl-cipher=DHE-RSA-AES256-SHA
ssl-ca=~/certs/ca-cert.pem


当我使用客户端登录时,查看状态,它会在SSL线上列出一个密码:

mysql> \s
--------------
SSL:            Cipher in use is DHE-RSA-AES256-SHA


如果没有安装wireshark之​​类的东西来验证连接是否安全,我可以假设我根据此信息通过SSL连接?

#1 楼

从客户端,只需运行status。如果此连接使用SSL,则会在SSL行中得到一些有趣的信息。

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.5.30, for Linux (x86_64) using readline 5.1

Connection id:      12
Current database:
Current user:       replicator@domU-12-31-39-10-54-BD.compute-1.internal
SSL:            Cipher in use is DHE-RSA-AES256-SHA
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     5.5.30-log MySQL Community Server (GPL)
Protocol version:   10
Connection:     boston.hugskeep.wstudent.com via TCP/IP
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:       3306
Uptime:         44 min 49 sec

Threads: 2  Questions: 16  Slow queries: 0  Opens: 34  Flush tables: 1  Open tables: 27  Queries per second avg: 0.005
--------------

mysql>


如果此连接未使用SSL,则会得到:

SSL:            Not in use


您还可以使用:

mysql> SHOW STATUS LIKE 'Ssl_cipher';
+---------------+--------------------+
| Variable_name | Value              |
+---------------+--------------------+
| Ssl_cipher    | DHE-RSA-AES256-SHA |
+---------------+--------------------+
1 row in set (0.00 sec)

mysql>


但是我认为第一个更具吸引力,并且肯定更容易类型。

评论


show status(例如“ Ssl_version”)也可以用于确定所使用的SSL / TLS协议版本。

– Joao Costa
19年2月13日在16:54

您是否知道是否可以针对特定用户执行此操作?不仅是当前用户? -stackoverflow.com/questions/56203365/…

–committedandroider
19年5月18日在22:51

我不确定现在是否已更改。对我来说,即使我没有使用SSL,它也显示SSL:对我而言,使用的密码是DHE-RSA-AES256-SHA。

–萨迪
19-10-23在14:52

#2 楼

这适用于mariadb mysql(尚未在纯mysql中尝试过):

mysql -h xxx.xxx.xxx.xxx -u testuser --ssl

'- -ssl'会告诉您是否启用了ssl,如果没有启用,则会显示'未使用'

评论


警告:--ssl已过时,将在以后的版本中删除。请改用--ssl-mode。 MySQL 5.6.4

–萨迪
19-10-23在14:53



#3 楼

对每个用户强制使用SSL:

alter user 'my_user'@'%' REQUIRE SSL;
mysql> \s


#4 楼

SSL:状态命令中没有告诉您连接正在使用SSL。客户端可以从自己的侧面禁用SSL。使用“显示会话状态”并找到“ Ssl_client_connects”以找到使用SSL的连接数。

#5 楼

MySQL 5.6.4

我不确定此


显示状态类似于'Ssl_cipher';


在更高版本中已更改。对我来说,即使我没有使用SSL,它也会为我显示SSL: Cipher in use is DHE-RSA-AES256-SHA

您可以使用以下方法来确认SSL是否正在使用。