MySQL连接安全性

我有2台Windows 2003服务器。 一个是用微软的FastCGI扩展和PHP运行IIS。 另一台服务器正在运行MySQL 5.1。 我想在IIS服务器上设置一些PHP应用程序,让他们在第二台服务器上使用数据库。

  • 在MySQL级别的服务器之间,我需要做什么来encryptionnetworking通道/协议?
  • 这是MySQL的免费版本的内置function,还是我需要付费版本?
  • 如果我从运行MySQL的Windows服务器迁移到Linux服务器,configuration是否相同?

我知道我可以在networking堆栈中的较低级别使用其他types的encryption和措施,但是想知道MySQL提供的是什么。

MySQL(标准的开源版本)提供SSLencryption。

首先,你想看看它是否启用。 您可以通过从mysql客户端运行以下命令来完成此操作:

SHOW VARIABLES LIKE 'have_ssl'; 

如果值是'是',那么你知道你的版本已经编译了。如果它说'DISABLED',那么你已经编译了,但是需要添加下面详细的证书信息。 如果有其他说法,那么你需要得到一个版本。

要启用它,你需要修改你的my.cnf文件,使其在[mysqld]部分包含以下内容:

 ssl-ca=ca-cert.pem ssl-cert=my_cert.pem ssl-key=my_key.pem 

显然,你需要将值改为任何适当的值。 所有的证书都应该是标准的PEM格式。

我不是一个PHP开发人员,但应该有一种方法来启用您的连接调用。

Mysql本地支持SSL,这里是文档的参考 。 棘手的一点可能是获得PHP版本的MySQL驱动程序,支持SSL。 我不确定,但代码可能需要使用mysqli *而不是mysql *或PDO。

MySQL二进制文件(大多数Windows用户从中安装)仅支持对Windows有一些不确定支持的yaSSL。

如果你想用SSL来运行,你可能需要为你的Windows版本find一个工作的yaSSL安装,或者运行它。