Cấu hình SSL trong MySQL là một bước quan trọng để bảo mật kết nối giữa máy khách và máy chủ MySQL. SSL (Secure Sockets Layer) mã hóa dữ liệu được truyền qua mạng, giúp ngăn chặn các tấn công như nghe lén và giả mạo. Dưới đây là hướng dẫn chi tiết về cách cấu hình SSL trong MySQL.
Trước tiên, bạn cần tạo các chứng chỉ SSL cho máy chủ và máy khách. Bạn có thể sử dụng OpenSSL để tạo các chứng chỉ này.
mkdir /etc/mysql/ssl cd /etc/mysql/ssl
openssl genrsa 2048 > server-key.pem
openssl req -new -key server-key.pem -out server-csr.pem
openssl x509 -req -in server-csr.pem -signkey server-key.pem -out server-cert.pem -days 365
openssl genrsa 2048 > client-key.pem
openssl req -new -key client-key.pem -out client-csr.pem
openssl x509 -req -in client-csr.pem -signkey client-key.pem -out client-cert.pem -days 365
Sau khi tạo các chứng chỉ, bạn cần cấu hình MySQL để sử dụng SSL.
Tùy thuộc vào hệ điều hành và cách cài đặt, file cấu hình MySQL thường là /etc/my.cnf
hoặc /etc/mysql/my.cnf
.
sudo nano /etc/mysql/my.cnf
Thêm các dòng sau vào file cấu hình trong phần [mysqld]
:
[mysqld] ssl-ca=/etc/mysql/ssl/ca-cert.pem ssl-cert=/etc/mysql/ssl/server-cert.pem ssl-key=/etc/mysql/ssl/server-key.pem
Lưu ý: Nếu bạn đã tạo một chứng chỉ CA (Certificate Authority), hãy chỉ định đường dẫn đến chứng chỉ CA trong ssl-ca
.
Sau khi chỉnh sửa file cấu hình, bạn cần khởi động lại dịch vụ MySQL để áp dụng các thay đổi.
sudo systemctl restart mysql
Để kiểm tra xem SSL đã được cấu hình thành công hay chưa, bạn có thể đăng nhập vào MySQL và chạy câu lệnh sau:
SHOW VARIABLES LIKE '%ssl%';
Nếu bạn thấy have_ssl
có giá trị là YES
, điều đó có nghĩa là SSL đã được cấu hình thành công.
Để kết nối đến MySQL sử dụng SSL, bạn cần sử dụng các tùy chọn sau trong lệnh kết nối:
mysql --host=hostname --user=username --password --ssl-ca=/etc/mysql/ssl/ca-cert.pem --ssl-cert=/etc/mysql/ssl/client-cert.pem --ssl-key=/etc/mysql/ssl/client-key.pem