How can I verify I'm using SSL to connect to mysql?
From the client, just run status
. If this connection is using SSL, you'll get something interesting in the SSL row.
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>
If this connection is not using SSL, you'll get:
SSL: Not in use
You can also use:
mysql> SHOW STATUS LIKE 'Ssl_cipher';
+---------------+--------------------+
| Variable_name | Value |
+---------------+--------------------+
| Ssl_cipher | DHE-RSA-AES256-SHA |
+---------------+--------------------+
1 row in set (0.00 sec)
mysql>
But I think the first is more attractive, and sure easier to type.
This is applicable to mariadb mysql (haven't tried in pure mysql):
mysql -h xxx.xxx.xxx.xxx -u testuser --ssl
'--ssl' will tell you if ssl is enabled, without, it will say 'not in use'
Force SSL per user:
alter user 'my_user'@'%' REQUIRE SSL;
mysql> \s