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.

Bước 1: Tạo chứng chỉ SSL

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.

Tạo thư mục lưu trữ chứng chỉ

mkdir /etc/mysql/ssl
cd /etc/mysql/ssl

Tạo Private Key cho máy chủ

openssl genrsa 2048 > server-key.pem

Tạo Certificate Signing Request (CSR) cho máy chủ

openssl req -new -key server-key.pem -out server-csr.pem

Tạo Chứng chỉ cho máy chủ

openssl x509 -req -in server-csr.pem -signkey server-key.pem -out server-cert.pem -days 365

Tạo Private Key cho máy khách

openssl genrsa 2048 > client-key.pem

Tạo CSR cho máy khách

openssl req -new -key client-key.pem -out client-csr.pem

Tạo Chứng chỉ cho máy khách

openssl x509 -req -in client-csr.pem -signkey client-key.pem -out client-cert.pem -days 365

Bước 2: Cấu hình MySQL sử dụng SSL

Sau khi tạo các chứng chỉ, bạn cần cấu hình MySQL để sử dụng SSL.

Mở file cấu hình MySQL

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ấu hình SSL

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.

Bước 3: Khởi động lại MySQL

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

Bước 4: Kiểm tra cấu hình SSL

Để 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.

Bước 5: Kết nối với MySQL qua SSL

Để 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

Lưu ý cuối cùng

  • Bảo mật chứng chỉ: Đảm bảo các chứng chỉ và khóa riêng tư được bảo mật và chỉ có quyền truy cập cần thiết.
  • Cập nhật chứng chỉ: Đừng quên cập nhật chứng chỉ trước khi hết hạn để duy trì kết nối an toàn.
  • Sử dụng phiên bản mới: Hãy chắc chắn rằng bạn đang sử dụng một phiên bản MySQL hỗ trợ SSL.