MySQL में SSL एन्क्रिप्शन सक्षम करें सुरक्षित कनेक्शन के लिए
SSL/TLS से MySQL कनेक्शन एन्क्रिप्ट करें, डेटा चोरी रोकें, फ़िशिंग हमलों से बचाएं।
SSL स्थिति जांचें
mysql> show variables like '%ssl%'; +---------------+----------+ | Variable_name | Value | +---------------+----------+ | have_openssl | DISABLED | | have_ssl | DISABLED | ...
SSL सर्टिफिकेट जनरेट करें
# mkdir /etc/certificates # cd /etc/certificates # openssl genrsa 2048 > ca-key.pem # openssl req -newkey rsa:2048 -days 1000 -nodes -keyout server-key.pem > server-req.pem # openssl x509 -req -in server-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem # openssl req -newkey rsa:2048 -days 1000 -nodes -keyout client-key.pem > client-req.pem # openssl x509 -req -in client-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > client-cert.pem
सर्वर कॉन्फ़िगरेशन (/etc/my.cnf)
[mysqld] ssl-ca=/etc/certificates/ca-cert.pem ssl-cert=/etc/certificates/server-cert.pem ssl-key=/etc/certificates/server-key.pem
MySQL रीस्टार्ट और सत्यापन
# service mysqld restart mysql> show variables like '%ssl%'; +---------------+-----------------------------------+ | Variable_name | Value | +---------------+-----------------------------------+ | have_openssl | YES | | have_ssl | YES | | ssl_ca | /etc/certificates/ca-cert.pem | | ssl_cert | /etc/certificates/server-cert.pem | | ssl_key | /etc/certificates/server-key.pem | +---------------+-----------------------------------+
SSL यूज़र बनाएं
mysql> GRANT ALL PRIVILEGES ON *.* TO 'ssl_user'@'%' IDENTIFIED BY 'password' REQUIRE SSL; mysql> FLUSH PRIVILEGES;
क्लाइंट कॉन्फ़िगरेशन
क्लाइंट सर्टिफिकेट (client-cert.pem, client-key.pem, ca-cert.pem) सर्वर से क्लाइंट पर कॉपी करें (scp)।
क्लाइंट से SSL कनेक्शन:
# mysql --ssl-ca=ca-cert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem -h 192.168.87.156 -u ssluser -p
कनेक्शन स्थिति में SSL cipher दिखेगा (उदा. DHE-RSA-AES256-SHA)।
क्लाइंट my.cnf में स्थायी सेटिंग:
[client] ssl-ca=/etc/certificates/ca-cert.pem ssl-cert=/etc/certificates/client-cert.pem ssl-key=/etc/certificates/client-key.pem
SSL सेटअप के बाद सभी MySQL कनेक्शन एन्क्रिप्टेड होंगे, डेटा सुरक्षित रहेगा।