Làm cách nào để xác minh tôi đang sử dụng SSL để kết nối với mysql?


23

Tôi đã định cấu hình máy chủ của mình để cho phép SSL và đã sửa đổi ứng dụng khách của mình ~ / .my.cnf để tôi sử dụng SSL:

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

Khi tôi đăng nhập với khách hàng của mình và xem trạng thái, nó liệt kê một mật mã trên dòng SSL:

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

Không cài đặt một cái gì đó như wireshark để xác minh rằng kết nối là an toàn, tôi có thể cho rằng tôi đang kết nối qua SSL dựa trên thông tin này không?

Câu trả lời:


32

Từ khách hàng, chỉ cần chạy status. Nếu kết nối này đang sử dụng SSL, bạn sẽ nhận được một điều thú vị trong hàng 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>

Nếu kết nối này không sử dụng SSL, bạn sẽ nhận được:

SSL:            Not in use

Bạn cũng có thể dùng:

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

mysql>

Nhưng tôi nghĩ đầu tiên là hấp dẫn hơn, và chắc chắn dễ gõ hơn.


show status like 'Ssl_version'cũng có thể hữu ích để xác định phiên bản giao thức SSL / TLS đang được sử dụng.
Joao Costa

Bạn có biết nếu có một cách để làm điều này cho một người dùng cụ thể. Không chỉ người dùng hiện tại? - stackoverflow.com/questions/56203365/ Mạnh
commitandroider

Tôi không chắc chắn điều này đã được thay đổi ngay bây giờ. Đối với tôi ngay cả khi tôi không sử dụng SSL, nó hiển thị SSL: Cipher in use is DHE-RSA-AES256-SHAcho tôi.
Sadee

1

Điều này có thể áp dụng cho mysia mariadb (chưa thử trong mysql thuần túy):

mysql -h xxx.xxx.xxx.xxx -u người kiểm tra --ssl

'--ssl' sẽ cho bạn biết nếu ssl được bật, nếu không, nó sẽ báo 'không sử dụng'


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

1

Buộc SSL cho mỗi người dùng:

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

0

MySQL 5.6.4

Tôi không chắc điều này

HIỂN THỊ TÌNH TRẠNG THÍCH 'Ssl_codes';

đã được thay đổi trong các phiên bản sau. Đối với tôi ngay cả khi tôi không sử dụng SSL, nó vẫn hiển thị SSL: Cipher in use is DHE-RSA-AES256-SHAcho tôi.

Bạn có thể sử dụng sau đây để xác nhận SSL có sử dụng hay không.

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.