买错了服务器,结果WordPress 和 MySQL Server成了外网链接,不用SSL链接就成了明文传输,太吓人了,赶紧开启MySQL SSL远程链接,压力给到了两遍的设置。
在 MySQL 8.0(低版本理论也行)服务器上配置 SSL
- 生成 SSL 证书和私钥:
- 使用 OpenSSL 生成自签名证书和私钥。以下是一个示例命令:
openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/mysql/certs/server-key.pem -out /etc/mysql/certs/server-cert.pem -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=your_server_domain"
- 将
your_server_domain
替换为你的服务器域名。
- 使用 OpenSSL 生成自签名证书和私钥。以下是一个示例命令:
- 配置 MySQL 以使用 SSL:
- 编辑 MySQL 配置文件(通常是
/etc/mysql/my.cnf
或/etc/mysql/my.ini
),并添加以下行:[mysqld] ssl-ca=/etc/mysql/certs/server-ca.pem ssl-cert=/etc/mysql/certs/server-cert.pem ssl-key=/etc/mysql/certs/server-key.pem
- 确保服务器配置文件中的
[mysqld]
部分包含上述 SSL 配置。
- 编辑 MySQL 配置文件(通常是
- 重启 MySQL 服务:
- 重启 MySQL 服务以应用 SSL 配置:
sudo systemctl restart mysql
- 重启 MySQL 服务以应用 SSL 配置:
在 WordPress 服务器上配置 SSL 客户端
- 生成客户端 SSL 证书和私钥:
- 使用 OpenSSL 为你的 WordPress 服务器生成自签名证书和私钥:
openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/mysql/certs/client-key.pem -out /etc/mysql/certs/client-cert.pem -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=your_server_domain"
- 将
your_server_domain
替换为你的服务器域名。
- 使用 OpenSSL 为你的 WordPress 服务器生成自签名证书和私钥:
- 配置 WordPress 数据库连接:
- 编辑 WordPress 的
wp-config.php
文件,并添加以下配置来启用 SSL 连接:define('DB_HOST', 'your_remote_mysql_server'); define('DB_NAME', 'your_database_name'); define('DB_USER', 'your_database_user'); define('DB_PASSWORD', 'your_database_password'); define('DB_CHARSET', 'utf8mb4'); define('DB_COLLATE', 'utf8mb4_unicode_ci'); define('MYSQL_SSL', true); define('MYSQL_SSL_CA', '/etc/mysql/certs/server-ca.pem'); define('MYSQL_SSL_KEY', '/etc/mysql/certs/client-key.pem'); define('MYSQL_SSL_CERT', '/etc/mysql/certs/client-cert.pem');
- 将
your_remote_mysql_server
、your_database_name
、your_database_user
和your_database_password
替换为你的 MySQL 服务器信息。
- 编辑 WordPress 的
- 测试连接:
- 在 WordPress 管理后台尝试更新数据库,以确保 SSL 连接正常工作。
请注意,MySQL 8.0 引入了一些新的 SSL 配置选项,如 ssl_mode
,你可以根据需要配置它来控制 SSL 连接的行为。确保在配置 SSL 时遵循最佳实践,并保持你的证书和私钥安全。
没有回复内容