Bagaimana saya bisa memverifikasi saya menggunakan SSL untuk terhubung ke mysql?

24

Saya telah mengkonfigurasi server saya untuk mengizinkan SSL, dan telah memodifikasi klien saya ~ / .my.cnf jadi saya menggunakan SSL:

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

Ketika saya masuk dengan klien saya dan melihat statusnya, ia mencantumkan cipher di jalur SSL:

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

Tanpa menginstal sesuatu seperti wireshark untuk memverifikasi bahwa koneksi aman, dapatkah saya berasumsi bahwa saya terhubung melalui SSL berdasarkan informasi ini?

chris
sumber

Jawaban:

33

Dari klien, jalankan saja status. Jika koneksi ini menggunakan SSL, Anda akan mendapatkan sesuatu yang menarik di baris 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>

Jika koneksi ini tidak menggunakan SSL, Anda akan mendapatkan:

SSL:            Not in use

Anda juga bisa menggunakan:

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

mysql>

Tapi saya pikir yang pertama lebih menarik, dan tentu lebih mudah untuk mengetik.

Jeremy Wadhams
sumber
show status like 'Ssl_version'juga dapat berguna untuk menentukan versi protokol SSL / TLS yang digunakan.
Joao Costa
apakah Anda tahu jika ada cara untuk melakukan ini untuk pengguna tertentu. bukan hanya pengguna saat ini? - stackoverflow.com/questions/56203365/…
berkomitmen
Saya tidak yakin ini sudah berubah sekarang. Bagi saya bahkan saya tidak menggunakan SSL, itu menunjukkan SSL: Cipher in use is DHE-RSA-AES256-SHAuntuk saya.
Sadee
2

Paksa SSL per pengguna:

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

Ini berlaku untuk mariadb mysql (belum mencoba dalam mysql murni):

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

'--ssl' akan memberi tahu Anda jika ssl diaktifkan, tanpa, ia akan mengatakan 'tidak digunakan'

pengguna2677034
sumber
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

Saya tidak yakin ini

TAMPILKAN STATUS SEPERTI 'Ssl_cipher';

telah diubah di versi yang lebih baru. Bagi saya bahkan jika saya tidak menggunakan SSL, itu menunjukkan SSL: Cipher in use is DHE-RSA-AES256-SHAuntuk saya.

Anda dapat menggunakan yang berikut untuk mendapatkan konfirmasi apakah SSL menggunakan atau tidak.

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
sumber