从 PHP 使用 SSL 连接到远程 MySQL 服务器
提出的问题涉及使用 SSL 与远程 MySQL 服务器建立安全连接PHP。使用 mysql_connect 的原始代码片段会产生“SSL 连接错误”。
了解问题
要深入研究根本原因,请考虑以下内容:
为了优化安全性,MySQL 配置应包括:
[客户端]
安全通信可以也可以通过 PHP 配置:
MySQLi 解决方案
为了使用 MySQLi 促进 SSL 连接,请利用以下代码:
$db = mysqli_init(); mysqli_options ($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true); $db->ssl_set('/etc/mysql/ssl/client-key.pem', '/etc/mysql/ssl/client-cert.pem', '/etc/mysql/ssl/ca-cert.pem', NULL, NULL); $link = mysqli_real_connect ($db, 'ip', 'user', 'pass', 'db', 3306, NULL, MYSQLI_CLIENT_SSL);
PDO_MYSQL 解决方案
如果必须遵守 PDO_MYSQL,请使用此方法:
$pdo = new PDO('mysql:host=ip;dbname=db', 'user', 'pass', array( PDO::MYSQL_ATTR_SSL_KEY =>'/etc/mysql/ssl/client-key.pem', PDO::MYSQL_ATTR_SSL_CERT=>'/etc/mysql/ssl/client-cert.pem', PDO::MYSQL_ATTR_SSL_CA =>'/etc/mysql/ssl/ca-cert.pem' ) );
警告
请注意,PDO 的 SSL 支持在 5.3.8 之前的 PHP 版本中受到限制。为了获得最佳功能,请考虑升级到更新的 PHP 版本。
以上是如何使用 PHP 中的 SSL 安全连接到远程 MySQL 服务器?的详细内容。更多信息请关注PHP中文网其他相关文章!