在Ubuntu上使用SSL远程连接MySQL服务器,需要进行一系列的配置。以下是基本的步骤:
1. 生成SSL证书和密钥:
首先,使用 OpenSSL 工具生成 SSL 证书和密钥。打开终端,执行以下命令:
sudo mkdir /etc/mysql/ssl
sudo openssl req -newkey rsa:2048 -nodes -keyout /etc/mysql/ssl/mysql-server-key.pem -out /etc/mysql/ssl/mysql-server-req.pem
sudo openssl x509 -req -sha256 -days 365 -in /etc/mysql/ssl/mysql-server-req.pem -signkey /etc/mysql/ssl/mysql-server-key.pem -out /etc/mysql/ssl/mysql-server-cert.pem
这将在 /etc/mysql/ssl/ 目录下生成 MySQL 服务器的证书和密钥。
2. 配置MySQL服务器:
编辑 MySQL 配置文件以启用 SSL。打开终端,执行以下命令:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
在文件中添加以下配置:
[mysqld]
ssl-ca=/etc/mysql/ssl/mysql-server-cert.pem
ssl-cert=/etc/mysql/ssl/mysql-server-cert.pem
ssl-key=/etc/mysql/ssl/mysql-server-key.pem
保存并关闭文件。然后,重新启动 MySQL 服务:
sudo service mysql restart
3. 创建MySQL用户并授权:
创建一个具有SSL连接权限的MySQL用户。在MySQL中,执行以下SQL命令:
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password' REQUIRE SSL;
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'%' REQUIRE SSL;
FLUSH PRIVILEGES;
替换 'your_user'、'your_password' 和 your_database 为实际的用户名、密码和数据库名称。
4. 配置MySQL客户端:
确保你的MySQL客户端支持SSL连接。如果使用 MySQL 客户端工具,确保它支持SSL选项。连接到MySQL时,可以使用以下命令:
mysql -u your_user -p --host=your_mysql_server_ip --ssl-key=/path/to/your/client-key.pem --ssl-cert=/path/to/your/client-cert.pem --ssl-ca=/path/to/mysql-server-cert.pem
替换 your_user、your_mysql_server_ip 以及证书和密钥的路径。
5. 测试SSL连接:
使用上述配置连接到MySQL服务器,确保SSL连接正常运行:
mysql -u your_user -p --host=your_mysql_server_ip --ssl-key=/path/to/your/client-key.pem --ssl-cert=/path/to/your/client-cert.pem --ssl-ca=/path/to/mysql-server-cert.pem
输入密码后,应该能够成功连接到MySQL服务器。