我需要能够加密从web服务器到数据库服务器的MySQL流量。我知道如何根据my.cnf中的服务器和客户端设置将MySQL设置为使用SSL,但是,这需要使用PHP中的mysql_connect()来完成。这可能是一个两部分的问题。
1) mysql_connect()是否使用在my.cnf中设置的MySQL客户端设置?
如果不是..。
我读到你可以使用MYSQL_CLIENT_SSL,但是,SSL数据是从哪里获得的?在mysql_connect函数中使用MYSQL_CLIENT_SSL是否会自动加密流量?
简单地说,做这件事的最好方法是什么?
谢谢!
发布于 2009-11-23 00:08:49
如果您使用SSL连接到MySQL,则您的SSL客户端和服务器之间的所有流量都将被加密。
MYSQL_CLIENT_SSL已过时。使用mysqli如果您需要使用SSL,
$db = mysqli_init();
$db->ssl_set(null, null,'cacert.pem',NULL,NULL);
$db->real_connect('host','user','pass','db'); 发布于 2009-11-22 23:19:28
作为替代解决方案,您还可以使用SSH tunnels来完成压缩和加密。
发布于 2009-11-22 23:25:53
MYSQL_CLIENT_SSL已从PHP中删除,应该无法工作。
你有几个选择:第一个是,如果你的web服务器也是你的数据库服务器,你不需要加密,因为连接永远不会离开你的盒子:它只使用localhost。
第二种选择是使用上面Pablo建议的方法,并利用SSH隧道。SSH隧道本质上与SSL连接做同样的事情,只是它需要一个“额外的步骤”才能运行。
这似乎是一个相当不错的教程,可以帮助你入门:
http://www.revsys.com/writings/quicktips/ssh-tunnel.html
希望这能有所帮助!
https://stackoverflow.com/questions/1778977
复制相似问题