Comment implémenter l'authentification SSL bidirectionnelle pour la base de données MySQL
Configurer le serveur MySQL
3.1 Générer un certificat auto-signé
Exécutez la commande suivante dans le ligne de commande pour générer le certificat auto-signé et le fichier de clé privée :
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server-key.pem -out server-cert.pem
Suivez les invites et remplissez les informations relatives au certificat. Le fichier server-cert.pem généré est le certificat du serveur et le fichier server-key.pem est la clé privée du serveur.
3.2 Modifier le fichier de configuration MySQL
Ouvrez le fichier de configuration MySQL my.cnf ou my.ini et ajoutez les éléments de configuration suivants :
[mysqld] ssl-ca=/path/to/ca-cert.pem ssl-cert=/path/to/server-cert.pem ssl-key=/path/to/server-key.pem
Parmi eux, /path/to/ est le chemin de stockage du fichier de certificat . Ces éléments de configuration spécifient l'autorité de certification du serveur MySQL, le certificat du serveur et la clé privée du serveur.
3.3 Redémarrez le serveur MySQL
Redémarrez le serveur MySQL pour que les éléments de configuration prennent effet.
Configurer la connexion client
4.1 Générer un certificat client et une paire de clés
Exécutez les commandes suivantes dans la ligne de commande pour générer le certificat client et les fichiers de clé privée :
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout client-key.pem -out client-cert.pem
Suivez les invites pour remplir les informations relatives au certificat. Le fichier client-cert.pem généré est le certificat client et le fichier client-key.pem est la clé privée du client.
4.2 Configurer les paramètres de connexion du client
Dans le code de l'application qui se connecte à la base de données MySQL, ajoutez les paramètres de connexion suivants :
jdbc:mysql://hostname:port/database?ssl=true&verifyServerCertificate=true&clientCertificate=/path/to/client-cert.pem&clientKey=/path/to/client-key.pem
où le nom d'hôte et le port sont respectivement le nom d'hôte et le numéro de port du serveur MySQL, et la base de données est le nom de la base de données à connecter.
Résumé :
Grâce aux étapes ci-dessus, nous avons mis en œuvre avec succès l'authentification SSL bidirectionnelle pour la base de données MySQL. L'authentification SSL bidirectionnelle sécurise les connexions aux bases de données, protégeant les données sensibles contre tout accès non autorisé. Cependant, nous devons veiller à mettre régulièrement à jour le certificat et à conserver correctement la clé privée pour garantir la sécurité du système.
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!