ฉันจะตรวจสอบว่าฉันใช้ SSL เพื่อเชื่อมต่อกับ mysql ได้อย่างไร


23

ฉันได้กำหนดค่าเซิร์ฟเวอร์ของฉันให้อนุญาต SSL และมีการปรับเปลี่ยนไคลเอนต์ของฉัน ~ / .my.cnf ดังนั้นฉันจึงใช้ SSL:

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

เมื่อฉันเข้าสู่ระบบกับลูกค้าของฉันและดูสถานะมันจะแสดงรายการตัวเลขในบรรทัด SSL:

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

โดยไม่ต้องติดตั้งอะไรอย่าง wireshark เพื่อตรวจสอบว่าการเชื่อมต่อนั้นปลอดภัยฉันจะสมมติว่าฉันกำลังเชื่อมต่อผ่าน SSL โดยใช้ข้อมูลนี้ได้หรือไม่?

คำตอบ:


32

statusจากลูกค้าเรียกใช้เพียง หากการเชื่อมต่อนี้ใช้ SSL คุณจะได้รับสิ่งที่น่าสนใจในแถว 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>

หากการเชื่อมต่อนี้ไม่ได้ใช้ SSL คุณจะได้รับ:

SSL:            Not in use

คุณยังสามารถใช้:

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

mysql>

แต่ฉันคิดว่าอันแรกน่าดึงดูดกว่าและพิมพ์ง่ายกว่า


show status like 'Ssl_version'ยังมีประโยชน์ในการพิจารณาเวอร์ชันโปรโตคอล SSL / TLS ที่ใช้อยู่
Joao Costa

คุณรู้หรือไม่ว่ามีวิธีการทำเช่นนี้สำหรับผู้ใช้ที่เฉพาะเจาะจง ไม่ใช่แค่ผู้ใช้ปัจจุบันใช่ไหม - stackoverflow.com/questions/56203365/...
committedandroider

ฉันไม่แน่ใจว่าสิ่งนี้ได้รับการเปลี่ยนแปลงแล้ว สำหรับฉันแม้ฉันไม่ได้ใช้ SSL มันก็แสดงSSL: Cipher in use is DHE-RSA-AES256-SHAให้ฉันเห็น
Sadee

1

สิ่งนี้ใช้ได้กับ mariadb mysql (ยังไม่ได้ลองใน mysql บริสุทธิ์):

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

'--ssl' จะบอกคุณว่า ssl เปิดใช้งานอยู่หรือไม่หากไม่มีก็จะบอกว่า 'ไม่ใช้งาน'


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

ฉันไม่แน่ใจ

แสดงสถานะเหมือน 'Ssl_cipher';

มีการเปลี่ยนแปลงในรุ่นที่ใหม่กว่า สำหรับฉันแม้ว่าฉันจะไม่ได้ใช้ SSL มันก็แสดงSSL: Cipher in use is DHE-RSA-AES256-SHAให้ฉันเห็น

คุณสามารถใช้การติดตามเพื่อรับ SSL ที่ยืนยันว่ากำลังใช้งานอยู่

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.