


Implémentation du cryptage SSL / TLS pour les connexions MySQL
Jul 02, 2025 pm 04:02 PMLa connexion MySQL permet le cryptage SSL / TLS pour empêcher les données d'être écoutées ou falsifiées pendant la transmission et assure la sécurité de la communication entre le client et le serveur. 1. Tout d'abord, confirmez si la version MySQL prend en charge SSL et vérifiez-la via les variables Show comme la commande 'have_ssl'. Si NO est retourné, vous devez installer le composant OpenSSL ou utiliser une distribution qui prend en charge SSL; 2. Préparez le certificat CA, le certificat de serveur et les fichiers de clés privés, vous pouvez créer votre propre CA et générer des fichiers connexes. L'environnement de test peut utiliser un certificat auto-signé. Il est recommandé d'utiliser un CA de confiance pour l'émettre dans l'environnement de production; 3. Spécifiez les chemins SSL-CA, SSL-CERT et SSL-Key dans le fichier de configuration MySQL et redémarrez le service MySQL pour prendre effet. Vérifiez s'il est activé avec succès via le statut Show comme ?SSL_CIPHER?; 4. Ajouter l'exigence lors de la création d'un utilisateur SSL force la connexion SSL. Lorsque le client se connecte, les paramètres SSL tels que - SSL-CA et - SSL-mode doivent être spécifiés. Différents outils doivent activer manuellement les options SSL; De plus, vous devez faire attention aux autorisations de fichiers de certificat, à l'exactitude du chemin et à la question de savoir si le client permet vraiment le mode SSL pour garantir que l'ensemble du processus de connexion est crypté et fiable.
La connexion MySQL permet le cryptage SSL / TLS, principalement pour empêcher les données d'être écoutées ou falsifiées pendant la transmission. Cette étape est essentielle si vous gérez les services de base de données ou si vous êtes responsable de la communication sécurisée entre les applications et les bases de données. En termes simples, après l'activation de SSL / TLS, toutes les communications entre le client et le serveur MySQL seront cryptées, et il est difficile d'interpréter le contenu même si quelqu'un intercepte le trafic.

Voici quelques suggestions pratiques pour vous aider à terminer la configuration en douceur.

1. Assurez-vous que MySQL prend en charge SSL / TLS
Toutes les versions MySQL ne sont pas activées par défaut SSL. Tout d'abord, vous devez confirmer si votre version MySQL prend en charge les connexions SSL. Vous pouvez le voir via la commande suivante:
Afficher des variables comme 'have_ssl';
Si la valeur de retour est YES
, cela signifie que MySQL a déjà un support SSL; S'il est DISABLED
ou NO
, vous devrez peut-être installer ou configurer des composants liés à SSL, tels que OpenSSL, et recompiler MySQL ou utiliser une distribution qui prend en charge SSL (comme Percona Server ou MARIADB).

2. Préparer le fichier de certificat SSL
Vous devez préparer trois fichiers principaux:
- Certificat CA (CA.PEM)
- Certificat de serveur (server-cert.pem)
- Clé privée de serveur (server-key.pem)
Vous pouvez générer ces fichiers vous-même ou les acheter auprès d'une institution de CA de confiance. Les certificats auto-signés conviennent aux environnements de test, mais les environnements de production recommandent d'utiliser des certificats formels.
Les étapes de base pour générer un certificat auto-signé sont les suivantes (OpenSSL est requis):
Générer la clé privée et le certificat CA:
OpenSSL Genrsa 2048> CA-key.pem OpenSSl req -new -x509 -Nodes -Days 365 -Key Ca-key.pem -out Ca.pem
Générer la clé privée et la demande de certificat de serveur:
OpenSSL REQ -NEWKEY RSA: 2048 -Days 365 -Nodes -KeyOut Server-Key.pem -out Server-Req.pem OpenSSL X509 -req -in Server-Req.pem -Days 365 -ca CA.PEM -Cakey Ca-key.pem -CacreateSerial -out Server-CERT.PEM
Une fois la génération terminée, mettez ces trois fichiers à l'emplacement spécifié dans la configuration MySQL, généralement un répertoire comme /etc/mysql/ssl/
.
3. Configurez MySQL pour activer SSL
Modifiez le fichier de configuration de MySQL (généralement my.cnf
ou my.ini
) et ajoutez le contenu suivant dans la section [mysqld]
:
[mysqld] ssl-ca = / etc / mysql / ssl / ca.pem ssl-cert = / etc / mysql / ssl / server-cert.pem ssl-key = / etc / mysql / ssl / server-key.pem
Ensuite, redémarrez le service MySQL pour rendre la configuration prendre effet:
sudo systemctl redémarrer mysql
Vous pouvez utiliser l'instruction SQL suivante pour vérifier que SSL est chargé correctement:
Afficher le statut comme ?ssl_cipher?;
Si vous voyez une valeur de sortie (non vide), cela signifie que SSL a été activé avec succès.
4. Forcer le client à utiliser la connexion SSL
Il ne suffit pas d'activer SSL, et il est également nécessaire de s'assurer que le client utilise effectivement le cryptage lors de la connexion. Vous pouvez ajouter une option SSL forcée lors de la création d'un utilisateur:
Utilisation de l'octroi sur *. * à 'Secure_User' @ '%' exiger ssl; Privilèges de rin?age;
De cette fa?on, l'utilisateur doit se connecter via SSL, sinon l'accès sera refusé.
De plus, les paramètres SSL doivent être spécifiés lors de la connexion au client. Par exemple, utilisez la ligne de commande pour se connecter:
mysql -u secre_user -p --host = your.mysql.server --sl-ca = / path / to / ca.pem --sl-mode = Verify_identity
Différents outils clients (tels que MySQL Workbench, NAVICAT, etc.) ont également des paramètres SSL correspondants. N'oubliez pas de vérifier "Utiliser SSL" et d'importer le certificat CA.
Fondamentalement, c'est tout. Bien que le processus ne soit pas compliqué, il y a plusieurs choses faciles à ignorer: d'abord, le problème des autorisations, en veillant à ce que le processus MySQL puisse lire le fichier de certificat; Deuxièmement, si le chemin de certificat est correctement configuré; Troisièmement, si le client a vraiment activé le mode SSL. Tant que ces points sont remarqués, SSL / TLS peut fonctionner de manière stable.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Pour réinitialiser le mot de passe racine de MySQL, veuillez suivre les étapes suivantes: 1. Arrêtez le serveur MySQL, utilisez SudosystemCTlStopmysql ou SudosystemctlStopMysQLD; 2. Démarrez MySQL en - Skip-Grant-Tables, exécutez SudomysQld-Skip-Grant-Tables &; 3. Connectez-vous à MySQL et exécutez la commande SQL correspondante pour modifier le mot de passe en fonction de la version, telle que Flushprivileges; alterUser'root '@' localhost'identifiedby'your_new

ToseCurelyConnectToAremotemysQlServer, Usesshtunneling, ConfigureMysqlForremoteAccess, Setfirewallrules et Considersslincryption . Premier, établianshtunnelwithssh-l3307: localhost: 3306User @ Remote-Server-NandConnectViamysql-H127.0.0.1-P3307.Second, Editmys

MySQLDump est un outil commun pour effectuer des sauvegardes logiques des bases de données MySQL. Il génère des fichiers SQL contenant des instructions de création et d'insertion pour reconstruire la base de données. 1. Il ne sauvegarde pas le fichier d'origine, mais convertit la structure de la base de données et le contenu en commandes SQL portables; 2. Il convient aux petites bases de données ou à la récupération sélective et ne convient pas à la récupération rapide des données de niveau TB; 3. 4. Utilisez la commande MySQL pour importer pendant la récupération et peut désactiver les vérifications des clés étrangères pour améliorer la vitesse; 5. Il est recommandé de tester régulièrement la sauvegarde, d'utiliser la compression et de régler automatiquement.

Lors de la gestion des valeurs nuls dans MySQL, veuillez noter: 1. Lors de la conception du tableau, les champs clés sont définis sur Notnull et les champs facultatifs sont autorisés nuls; 2. ISNULL ou ISNOTNULL doit être utilisé avec = ou! =; 3. Les fonctions IFNULL ou Coalesce peuvent être utilisées pour remplacer les valeurs par défaut d'affichage; 4. Soyez prudent lorsque vous utilisez des valeurs nulles directement lors de l'insertion ou de la mise à jour, et faites attention aux méthodes de traitement de la source de données et du cadre ORM. NULL représente une valeur inconnue et n'égale aucune valeur, y compris lui-même. Par conséquent, soyez prudent lorsque vous interrogez, comptez et connectez les tables pour éviter les données manquantes ou les erreurs logiques. L'utilisation rationnelle des fonctions et des contraintes peut réduire efficacement les interférences causées par NULL.

Allumez les journaux de requête lente MySQL et analysez les problèmes de performances localisés. 1. Modifiez le fichier de configuration ou définissez dynamiquement Slow_Query_Log et Long_Query_time; 2. Le journal contient des champs clés tels que Query_time, Lock_time, ROWS_EXAMINE pour aider à juger les goulots d'étranglement de l'efficacité; 3. Utilisez les outils MySqlDumpSlow ou Pt-Query-digest pour analyser efficacement les journaux; 4. Les suggestions d'optimisation incluent l'ajout d'index, d'éviter la sélection *, le fractionnement des requêtes complexes, etc. Par exemple, l'ajout d'un index à user_id peut réduire considérablement le nombre de lignes numérisées et améliorer l'efficacité de la requête.

GroupBy est utilisé pour regrouper les données par champ et effectuer des opérations d'agrégation, et avoir une utilisation est utilisée pour filtrer les résultats après le regroupement. Par exemple, l'utilisation de groupByCustomer_ID peut calculer la quantité de consommation totale de chaque client; L'utilisation d'avoir peut filtrer les clients avec une consommation totale de plus de 1 000. Les champs non agrégés après sélection doivent appara?tre dans GroupBY, et avoir peut être filtré conditionnellement à l'aide d'un alias ou d'expressions d'origine. Les techniques courantes incluent le comptage du nombre de chaque groupe, le regroupement de plusieurs champs et le filtrage avec plusieurs conditions.

Les transactions MySQL et les mécanismes de verrouillage sont essentielles pour le contr?le et le réglage des performances simultanés. 1. Lorsque vous utilisez des transactions, assurez-vous d'exciter explicitement et de maintenir les transactions à court pour éviter l'occupation des ressources et les ballonnements undolog en raison de longues transactions; 2. Les opérations de verrouillage incluent des verrous partagés et des verrous exclusifs, SELECT ... Forupdate Plus X Locks, SELECT ... LOCKINSHAREMODE plus les verrous S, les opérations d'écriture automatiquement et les index doivent être utilisés pour réduire la granularité des verrous; 3. Le niveau d'isolement est lisible de manière répétitive par défaut, adapté à la plupart des scénarios et les modifications devraient être prudentes; 4. L'inspection de blocage peut analyser les détails de la dernière impasse via la commande showEngineInNodbStatus, et les méthodes d'optimisation incluent l'ordre d'exécution unifié, augmentent les index et introduisent des systèmes de file d'attente.

La pagination MySQL est généralement mise en ?uvre en utilisant la limite et le décalage, mais ses performances sont médiocres sous un grand volume de données. 1. Limit contr?le le nombre de chaque page, le décalage contr?le la position de départ et la syntaxe est limitedoffsetm; 2. Les problèmes de performance sont causés par des enregistrements excessifs et la suppression des analyses de décalage, entra?nant une faible efficacité; 3. Les suggestions d'optimisation incluent l'utilisation de la pagination du curseur, de l'accélération d'index et du chargement paresseux; 4. Le curseur Paging localise le point de départ de la page suivante à travers la valeur unique du dernier enregistrement de la page précédente, en évitant le décalage, ce qui convient à l'opération "page suivante", et ne convient pas aux sauts aléatoires.
