ホームページ > データベース > mysql チュートリアル > PHP で SSL を使用してリモート MySQL サーバーに安全に接続する方法

PHP で SSL を使用してリモート MySQL サーバーに安全に接続する方法

Linda Hamilton
リリース: 2024-11-19 21:39:03
オリジナル
355 人が閲覧しました

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

PHP から SSL を使用してリモート MySQL サーバーに接続する

PHP から SSL を使用してリモート MySQL サーバーに接続することは、特に古い mysql_connect 関数。この課題を克服するには、拡張機能と SSL サポートを提供する MySQL Enhanced Extension (MySQLi) を利用することをお勧めします。

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 サポート

SSL で PDO_MYSQL を使用するには、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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート