it-swarm.com.de

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

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 mit meinem Client anmelde und den Status anzeige, wird eine Verschlüsselung in der SSL-Zeile aufgelistet:

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

Kann ich davon ausgehen, dass ich aufgrund dieser Informationen eine Verbindung über SSL herstelle, ohne etwas wie Wireshark zu installieren, um zu überprüfen, ob die Verbindung sicher ist?

27
chris

Führen Sie auf dem Client einfach status aus. Wenn diese Verbindung SSL verwendet, erhalten Sie in der SSL-Zeile etwas Interessantes.

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:       [email protected]
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.

35
Jeremy Wadhams

SSL pro Benutzer erzwingen:

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

Dies gilt für Mariadb MySQL (habe es nicht in reinem MySQL versucht):

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

'--ssl' teilt Ihnen mit, ob ssl aktiviert ist, ohne dass 'nicht verwendet' angezeigt wird.

1
user2677034

SSL: Der Befehl Befehl hat Ihnen nicht mitgeteilt, dass die Verbindung SSL verwendet. Clients können die Verwendung von SSL von ihrer Seite aus deaktivieren. Verwenden Sie "Sitzungsstatus anzeigen" und suchen Sie "Ssl_client_connects", um die Anzahl der Verbindungen mit SSL zu ermitteln.

0
Chayne P. S.

MySQL 5.6.4

Ich bin mir nicht sicher

SHOW STATUS LIKE 'Ssl_cipher';

wurde in späteren Versionen geändert. Selbst wenn ich kein SSL verwende, wird für mich SSL: Cipher in use is DHE-RSA-AES256-SHA für mich.

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

[email protected]:~$ 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
0
Sadee