WordPress链接加密带有SSL的远程MySQL Server! - 技术宅银魂 - 科技改变生活 - 万事屋

WordPress链接加密带有SSL的远程MySQL Server!

买错了服务器,结果WordPress 和 MySQL Server成了外网链接,不用SSL链接就成了明文传输,太吓人了,赶紧开启MySQL SSL远程链接,压力给到了两遍的设置。

在 MySQL 8.0(低版本理论也行)服务器上配置 SSL

  1. 生成 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 替换为你的服务器域名。
  2. 配置 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 配置。
  3. 重启 MySQL 服务
    • 重启 MySQL 服务以应用 SSL 配置:
      sudo systemctl restart mysql
      

在 WordPress 服务器上配置 SSL 客户端

  1. 生成客户端 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 替换为你的服务器域名。
  2. 配置 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_serveryour_database_nameyour_database_useryour_database_password 替换为你的 MySQL 服务器信息。
  3. 测试连接
    • 在 WordPress 管理后台尝试更新数据库,以确保 SSL 连接正常工作。

请注意,MySQL 8.0 引入了一些新的 SSL 配置选项,如 ssl_mode,你可以根据需要配置它来控制 SSL 连接的行为。确保在配置 SSL 时遵循最佳实践,并保持你的证书和私钥安全。

    没有回复内容

万事屋新帖