Connexion à un serveur MySQL distant avec SSL à partir de PHP
Lors de la tentative d'établissement d'une connexion à un serveur MySQL distant avec SSL à l'aide de l'ancien MySQL (mysql_connect), les utilisateurs peuvent rencontrer une erreur indiquant « Erreur de connexion SSL ». Malgré la configuration des paramètres SSL appropriés dans my.cnf pour activer les connexions sécurisées au terminal, la connexion PHP reste infructueuse.
Considérations sur la version PHP
Le code fourni utilise l'extension MySQL obsolète. , qui n'est plus activement développé. Au lieu de cela, il est recommandé d'utiliser l'extension MySQLi (MySQL Improvementd Extension) qui offre un ensemble de fonctionnalités améliorées, notamment :
Connectivité améliorée avec MySQLi
L'exemple de code suivant montre comment utiliser MySQLi pour une connexion SSL sécurisée :
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);
Alternative PDO_MYSQL
Bien que non idéal en raison de la prise en charge limitée de SSL dans les anciennes versions de PHP, PDO_MYSQL peut être utilisé pour SSL connexions :
$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);
Il est important de noter que le support SSL dans PDO pour les versions PHP antérieures à 5.3.8 peut ne pas fonctionner comme prévu.
Si vous rencontrez d'autres problèmes, veuillez consulter le ressources suivantes pour des conseils supplémentaires :
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!