Wie kann ich überprüfen, ob ich SSL verwende, um eine Verbindung zu MySQL herzustellen?

23

Ich habe meinen Server so konfiguriert, dass SSL zulässig ist, und meinen Client ~ / .my.cnf so geändert, dass ich SSL verwende:

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

Wenn ich mich bei meinem Client anmelde und den Status anzeige, wird in der SSL-Zeile eine Verschlüsselung aufgeführt:

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

Kann ich davon ausgehen, dass ich mich auf der Grundlage dieser Informationen über SSL verbinde, ohne so etwas wie Wireshark zu installieren, um die Sicherheit der Verbindung zu überprüfen?

chris
quelle

Antworten:

32

Vom Client einfach ausführen status. Wenn diese Verbindung SSL verwendet, wird in der SSL-Zeile etwas Interessantes angezeigt.

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>

Wenn diese Verbindung kein SSL verwendet, erhalten Sie:

SSL:            Not in use

Sie können auch verwenden:

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

mysql>

Aber ich denke, der erste ist attraktiver und sicher einfacher zu tippen.

Jeremy Wadhams
quelle
show status like 'Ssl_version'kann auch hilfreich sein, um die verwendete SSL / TLS-Protokollversion zu bestimmen.
Joao Costa
Wissen Sie, ob dies für einen bestimmten Benutzer möglich ist? nicht nur der aktuelle Benutzer? - stackoverflow.com/questions/56203365/...
committedandroider
Ich bin mir nicht sicher, ob dies jetzt geändert wurde. Für mich, auch wenn ich kein SSL verwende, zeigt es SSL: Cipher in use is DHE-RSA-AES256-SHAfür mich.
Sadee
1

Dies gilt für mariadb mysql (habe es noch nicht in reinem mysql versucht):

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

'--ssl' zeigt an, ob ssl aktiviert ist, ohne dass 'nicht in Benutzung' angezeigt wird.

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

SSL pro Benutzer erzwingen:

alter user 'my_user'@'%' REQUIRE SSL;
mysql> \s
Mary Ciricean
quelle
0

MySQL 5.6.4

Ich bin mir nicht sicher

SHOW STATUS LIKE 'Ssl_cipher';

wurde in späteren Versionen geändert. Für mich, auch wenn ich kein SSL verwende, zeigt es SSL: Cipher in use is DHE-RSA-AES256-SHAfür mich.

Sie können Folgendes verwenden, um zu bestätigen, dass SSL verwendet wird oder nicht.

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
quelle