Maison > base de données > tutoriel mysql > Comment puis-je me connecter en toute sécurité à un serveur MySQL distant en utilisant SSL depuis PHP ?

Comment puis-je me connecter en toute sécurité à un serveur MySQL distant en utilisant SSL depuis PHP ?

Barbara Streisand
Libérer: 2024-11-19 18:43:03
original
1161 Les gens l'ont consulté

How Can I Securely Connect to a Remote MySQL Server Using SSL from 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 :

  • MySQLi (MySQL Improvementd Extension) offre une prise en charge supérieure pour les connexions cryptées par rapport à l'ancienne extension mysql_connect.
  • Pour optimiser la sécurité, les configurations MySQL doivent inclure :

    • [client]

      • ssl-ca = /etc/mysql/ssl/ca-cert.pem
      • ssl-cert = /etc/mysql/ssl/client -cert.pem
      • ssl-key = /etc/mysql/ssl/client-key.pem
  • Une communication sécurisée peut également être configuré via PHP :

    • mssql.secure_connection = On dans php.ini

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

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

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal