Se connecter à un serveur MySQL distant avec SSL depuis PHP
La connexion à un serveur MySQL distant à l'aide de SSL depuis PHP peut être difficile, en particulier lors de l'utilisation la fonction mysql_connect obsolète. Pour surmonter ce défi, il est recommandé d'utiliser l'extension améliorée MySQL (MySQLi), qui offre des fonctionnalités améliorées et une prise en charge SSL.
Utilisation de MySQLi
Le code PHP suivant démontre comment établir une connexion cryptée SSL à l'aide de MySQLi :
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(); }
Support SSL PDO_MYSQL
L'utilisation de PDO_MYSQL avec SSL nécessite une version récente de PHP prenant en charge SSL. Pour les versions antérieures à 5.3.8, les options SSL sont ignorées. Cependant, l'exemple de code suivant illustre la configuration SSL avec 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' )); $statement = $pdo->query("SHOW TABLES;"); $row = $statement->fetch(PDO::FETCH_ASSOC); echo htmlentities($row['_message']);
En suivant ces étapes et en adaptant le code fourni à votre environnement spécifique, vous pouvez réussir à établir une connexion sécurisée à un serveur MySQL distant à l'aide de SSL depuis PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!