10.6 保护MySQL连接

10.6 保护MySQL连接

客户端和MySQL服务器之间的数据流与其他一般的网络数据流不同,它可能被恶意的第三方截取甚至修改。有时这不是问题,因为数据库服务器和客户端通常位于同一个内网,在很多情况下就在同一台机器上。但是,如果项目要求数据要通过不安全的通道传输,就要选择使用MySQL的内置安全特性对连接加密。在版本4.0.0中,通过使用SSL及X509加密标准,已经可以对mysqld服务器守护进程和任何客户端之间的所有数据流加密。

为实现此特性,需要首先完成以下任务,除非运行的是MySQL 5.0.10或更高版本,这时可以跳过这些任务;这些版本捆绑了yaSSL支持,这意味着不再需要OpenSSL来实现安全的SSL连接。无论使用yaSSL还是需要OpenSSL,所有其他指令都相同。

安装OpenSSL库,可以从OpenSSL官方网站下载。使用-with-vio和-with-openssl标志配置MySQL。可以登录到MySQL服务器并执行如下命令,验证MySQL是否准备好处理安全连接:

完成这些预备工作之后,需要创建或购买一个服务器证书和一个客户端证书。完成这两项任务的过程超出了本书的范围。可以在因特网上了解此过程的信息,所以花点时间搜索一下,将得到很多相关资源。