TLS (SSL) MySQL क्लाइंट-सर्वर संचार को एन्क्रिप्ट करता है। MySQL SSL प्रोटोकॉल का उपयोग नहीं करता (कमजोर एन्क्रिप्शन); TLS का उपयोग करता है।
TLS सक्षम करने के चरण
1. सर्वर पर सर्टिफिकेट/की कॉन्फ़िगर करें
[mysqld] ssl-cert=server-cert.pem ssl-key=server-key.pem
सर्टिफिकेट/की openssl या mysql_ssl_rsa_setup से जनरेट करें:
mysql_ssl_rsa_setup --datadir=./certs
2. सर्वर पर TLS रीलोड करें (रीस्टार्ट बिना)
ALTER INSTANCE RELOAD TLS;
3. क्लाइंट कॉन्फ़िगरेशन
डिफ़ॉल्ट रूप से क्लाइंट एन्क्रिप्टेड कनेक्शन का प्रयास करता है; विफल होने पर अनएन्क्रिप्टेड पर फॉलबैक करता है।
व्यवहार बदलने के लिए --ssl-mode:
| मोड | विवरण |
|---|---|
| DISABLED | एन्क्रिप्शन नहीं |
| PREFERRED | कोशिश करें, विफल तो अनएन्क्रिप्टेड (डिफ़ॉल्ट) |
| REQUIRED | एन्क्रिप्शन अनिवार्य; विफल तो त्रुटि |
| VERIFY_CA | REQUIRED + सर्वर सर्टिफिकेट CA से सत्यापित |
| VERIFY_IDENTITY | VERIFY_CA + होस्टनाम पहचान सत्यापित |
4. पारस्परिक प्रमाणीकरण (Mutual Authentication)
- सर्वर:
ssl-ca,ssl-cert,ssl-key। - क्लाइंट:
--ssl-ca,--ssl-cert,--ssl-key। - क्लाइंट सर्टिफिकेट सर्वर के CA द्वारा हस्ताक्षरित होना चाहिए।
वर्तमान कनेक्शन एन्क्रिप्शन जांचें
mysql> \s # या mysql> SHOW SESSION STATUS LIKE 'Ssl_cipher';