我已经将我的服务器配置为允许 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连接的吗?
从客户端,只需运行
status
. 如果此连接使用 SSL,您将在 SSL 行中获得一些有趣的信息。如果此连接未使用 SSL,您将获得:
您还可以使用:
但我认为第一个更有吸引力,而且肯定更容易打字。
这适用于 MariaDB(没有在纯 MySQL 中尝试过):
该
--ssl
选项将告诉您是否启用了 SSL。如果禁用,该命令将返回“未使用”强制每个用户使用 SSL:
MySQL 5.6.4
我不确定这个
在以后的版本中已更改。对我来说,即使我没有使用 SSL,它也会显示
SSL: Cipher in use is DHE-RSA-AES256-SHA
给我。您可以使用以下内容来确认 SSL 是否使用。
该
status
命令不知道连接是否使用 SSL。客户端可以从他们这边禁用使用 SSL。使用
show session status
并查找Ssl_client_connects
使用 SSL 的连接数。根据 MYSQL 网站的官方解决方案
在要验证的会话中运行它:
如果您获得密码和版本字符串,则连接已加密。如果未加密,您将得到空字符串。
来源:https ://dev.mysql.com/doc/refman/8.0/en/encrypted-connection-protocols-ciphers.html
使用 Mysql 工作台:
如果您使用 Mysql Workbench 连接到服务器,您可以在类别下的
Status and System Variable
部分中看到 SSL 状态变量 -SSL
如果 SSL_Cipher 值为空白,则表示 SSL 未启用。
就我而言:是的,启用了 SSL。