Comment puis-je vérifier que j'utilise SSL pour me connecter à mysql?

24

J'ai configuré mon serveur pour autoriser SSL et j'ai modifié mon client ~ / .my.cnf donc j'utilise SSL:

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

Lorsque je me connecte avec mon client et que je visualise l'état, il répertorie un chiffre sur la ligne SSL:

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

Sans installer quelque chose comme Wireshark pour vérifier que la connexion est sécurisée, puis-je supposer que je me connecte via SSL sur la base de ces informations?

chris
la source

Réponses:

33

Depuis le client, exécutez simplement status. Si cette connexion utilise SSL, vous obtiendrez quelque chose d'intéressant dans la ligne 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>

Si cette connexion n'utilise pas SSL, vous obtiendrez:

SSL:            Not in use

Vous pouvez aussi utiliser:

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

mysql>

Mais je pense que le premier est plus attrayant et plus facile à taper.

Jeremy Wadhams
la source
show status like 'Ssl_version'peut également être utile pour déterminer la version du protocole SSL / TLS utilisée.
Joao Costa
savez-vous s'il existe un moyen de le faire pour un utilisateur spécifique. pas seulement l'utilisateur actuel? - stackoverflow.com/questions/56203365/...
committedandroider
Je ne suis pas sûr que cela ait été changé maintenant. Pour moi, même si je n'utilise pas SSL, cela se voit SSL: Cipher in use is DHE-RSA-AES256-SHApour moi.
Sadee
2

Forcer SSL par utilisateur:

alter user 'my_user'@'%' REQUIRE SSL;
mysql> \s
Mary Ciricean
la source
1

Ceci s'applique à mysadl mariadb (je n'ai pas essayé en mysql pur):

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

'--ssl' vous dira si ssl est activé, sans, il dira 'non utilisé'

user2677034
la source
WARNING: --ssl is deprecated and will be removed in a future version. Use --ssl-mode instead.MySQL 5.6.4
Sadee
0

MySQL 5.6.4

Je ne suis pas sûr

AFFICHER L'ÉTAT COMME 'Ssl_cipher';

a été modifié dans les versions ultérieures. Pour moi, même si je n'utilise pas SSL, cela se voit SSL: Cipher in use is DHE-RSA-AES256-SHApour moi.

Vous pouvez utiliser ce qui suit pour confirmer que SSL utilise ou non.

ubuntu@ip-111-22-3-444:~$ mysql -h 111.22.3.444 -u dbuser --ssl-mode=VERIFY_IDENTITY -p
ERROR 2026 (HY000): SSL connection error: CA certificate is required if ssl-mode is VERIFY_CA or VERIFY_IDENTITY
Sadee
la source