Maison > Article > base de données > Comment puis-je me connecter en toute sécurité à un serveur MySQL distant en utilisant SSL depuis PHP ?
Connexion à un serveur MySQL distant avec SSL depuis PHP
La question posée concerne l'établissement d'une connexion sécurisée à un serveur MySQL distant utilisant SSL depuis PHP. L'extrait de code d'origine utilisant mysql_connect génère une « erreur de connexion SSL ».
Comprendre le problème
Pour approfondir la cause première, considérez ce qui suit :
Pour optimiser la sécurité, les configurations MySQL doivent inclure :
[client]
Une communication sécurisée peut également être configuré via PHP :
Solution MySQL
Pour faciliter les connexions SSL à l'aide de MySQLi, exploitez le code suivant :
$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);
Solution PDO_MYSQL
Si le respect de PDO_MYSQL est essentiel, utilisez cette approche :
$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' ) );
Attention
Notez que le support SSL pour PDO est limité dans les versions PHP antérieures à 5.3.8. Pour une fonctionnalité optimale, envisagez de passer à une version PHP plus récente.
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!