Maison > base de données > tutoriel mysql > le corps du texte

Comment se connecter en toute sécurité à un serveur MySQL distant via SSL en PHP ?

DDD
Libérer: 2024-11-23 22:48:10
original
718 Les gens l'ont consulté

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

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 :

  • Interface orientée objet
  • Prise en charge des instructions préparées et multiples
  • Capacités de débogage améliorées

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);
Copier après la connexion

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);
Copier après la connexion

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 :

  • [Connexion SSL PHP MySQLi Exemple](https://www.digitalocean.com/community/tutorials/how-to-use-ssl-to-secure-mysql-connections-in-php)
  • [Configuration SSL PDO MySQL]( https://stackoverflow.com/questions/30075513/pdo-ssl-connection-fails)

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal