我有 2 台 Windows 2003 服务器。一台运行带有 Microsoft FastCGI 扩展和 PHP 的 IIS。另一台服务器运行 MySQL 5.1。我想在 IIS 服务器上设置一些 PHP 应用程序,并让它们使用第二台服务器上的数据库。
- 我需要做什么来加密 MySQL 级别的服务器之间的网络通道/协议?
- 这是 MySQL 免费版的内置功能吗,还是我需要付费版本?
- 如果我从运行 MySQL 的 Windows 服务器迁移到 Linux 服务器,配置是否相同?
我知道我可以在网络堆栈的较低级别使用其他类型的加密和措施,但想知道 MySQL 提供什么。
答案1
MySQL(标准、开源版本)提供 SSL 加密。
首先,您要查看它是否已启用。您可以通过从 mysql 客户端运行以下命令来执行此操作:
SHOW VARIABLES LIKE 'have_ssl';
如果值为“YES”,则表明您的版本已将其编译在内。如果值为“DISABLED”,则表明您已将其编译在内,但需要添加下面详述的证书信息。如果值为其他值,则表明您需要获取包含该值的版本。
要启用它,您需要修改 my.cnf 文件,以便它在 [mysqld] 部分包含以下内容:
ssl-ca=ca-cert.pem
ssl-cert=my_cert.pem
ssl-key=my_key.pem
显然,您需要将值更改为适当的值。所有证书都应采用标准 PEM 格式。
我并不是一名 PHP 开发人员,但应该有一种方法可以在连接调用中启用此功能。
答案2
答案3
MySQL 二进制文件(大多数 Windows 用户从中安装)仅支持 yaSSL,而 yaSSL 对 Windows 的支持不太可靠。
如果您想使用 SSL 运行它,您可能需要为您的 Windows 版本找到一个可用的 yaSSL 安装或在 Linux 上运行它。