首页  >  文章  >  数据库  >  如何在 PHP 中使用 SSL 安全连接到远程 MySQL 服务器?

如何在 PHP 中使用 SSL 安全连接到远程 MySQL 服务器?

Linda Hamilton
Linda Hamilton原创
2024-11-19 21:39:03314浏览

How to Securely Connect to a Remote MySQL Server Using SSL in PHP?

使用 PHP 的 SSL 连接到远程 MySQL 服务器

使用 PHP 的 SSL 连接到远程 MySQL 服务器可能具有挑战性,尤其是在使用过时的 mysql_connect 函数。为了克服这一挑战,建议使用 MySQL 改进扩展 (MySQLi),它提供增强的功能和 SSL 支持。

使用 MySQLi

以下 PHP 代码演示如何使用 MySQLi 建立 SSL 加密连接:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', '1');
error_reporting(E_ALL|E_STRICT);

$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);
if (!$link) {
    die('Connect error (' . mysqli_connect_errno() . '): ' . mysqli_connect_error() . "\n");
} else {
    $res = $db->query('SHOW TABLES;');
    print_r($res);
    $db->close();
}

PDO_MYSQL SSL 支持

将 PDO_MYSQL 与 SSL 结合使用需要支持 SSL 的最新 PHP 版本。对于 5.3.8 之前的版本,SSL 选项将被忽略。但是,以下代码示例说明了 PDO_MYSQL 的 SSL 配置:

$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'
));
$statement = $pdo->query("SHOW TABLES;");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);

通过执行以下步骤并根据您的特定环境调整提供的代码,您可以使用 SSL 成功建立与远程 MySQL 服务器的安全连接: PHP。

以上是如何在 PHP 中使用 SSL 安全连接到远程 MySQL 服务器?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn