我有 2 台 Windows 2003 服务器。一种是使用 Microsoft 的 FastCGI 扩展和 PHP 运行 IIS。另一台服务器正在运行 MySQL 5.1。我想在 IIS 服务器上设置一些 PHP 应用程序,并让它们在第二台服务器上使用数据库。
- 我需要做什么来加密 MySQL 级别的服务器之间的网络通道/协议?
- 这是 MySQL 免费版的内置功能,还是我需要付费版本?
- 如果我从运行 MySQL 的 Windows 服务器迁移到 Linux 服务器,配置是否相同?
我知道我可以在网络堆栈的较低级别使用其他类型的加密和措施,但想知道 MySQL 提供什么。
MySQL(标准,开源版本)提供 SSL 加密。
首先,您想查看它是否已启用。您可以通过从 mysql 客户端运行以下命令来执行此操作:
如果值为'YES',那么你知道你的版本已经编译了它。如果它说'DISABLED',那么你已经编译了它,但需要添加下面详述的证书信息。如果它说别的,那么,你需要得到一个版本。
要启用它,您需要修改 my.cnf 文件,使其在 [mysqld] 部分中包含以下内容:
显然,您需要将值更改为合适的值。所有证书都应采用标准 PEM 格式。
我不是 PHP 开发人员,但应该有一种方法可以在您的连接调用中启用它。
Mysql 原生支持 SSL 这里是来自文档的参考。棘手的一点可能是获得一个带有支持 ssl 的 mysql 驱动程序的 PHP 版本。我不确定,但代码可能需要使用mysqli * 而不是 mysql * 或 PDO。
MySQL 二进制文件(大多数 Windows 用户从中安装)仅支持 yaSSL,它对 Windows 有一些不确定的支持。
如果您想使用 SSL 运行它,您可能需要为您的 Windows 版本找到一个有效的 yaSSL 安装或在 Linux 上运行它。