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.