J'essaie de connecter Django à une base de données MySQL accessible via une connexion SSL. Comment puis-je configurer cela?
Ma première hypothèse définirait la propriété "Options" de la définition de la base de données. Cependant, je ne trouve pas d'informations sur les options possibles à utiliser. L'option La commande suivante semble fonctionner: p> 'ssl': '/map/to/ca-cert.pem' code> ne fonctionne pas. P> mysql -h url.to.host -u lizard -p --ssl-ca=./ca-cert.pem
4 Réponses :
django utilise la bibliothèque Python mysqldb code> à l'interface avec MySQL. En regardant La documentation de la connexion MySQLDB , il ressemble au SSL L'option code> nécessite un argument de dictionnaire. Cela pourrait donc fonctionner: 'OPTIONS': {'ssl': {'key': '/map/to/ca-cert.pem'}}
Merci. Cela fonctionne également avec «CA» au lieu de «clé». La réponse était sur cette page: dev.mysql.com /doc/refman/5.5/fr/mysql-ssl-set.html
Il semble que "CA" est la bonne option, "Touche" à son propre causée MySQL ne vérifie pas le contenu. En savoir plus à ce sujet ici: Stackoverflow.com/questions/7287088/... et ici: bugs.mysql.com/bug.php?id=62743
Le client MySQL doit être fourni avec trois clés:
Voir le Documentation MySQL Pour les instructions pour la création de ces touches et la configuration du serveur. P> Remarque: il y a un Ouvrir le problème qui semble être lié à l'utilisation de OpenSSL V1.0.1 pour créer les certificats pour MySQL 5.5.x P> Ceci est un exemple d'entrée pour les paramètres Django Fichier: P> DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '<DATABASE NAME>',
'USER': '<USER NAME>',
'PASSWORD': '<PASSWORD>',
'HOST': '<HOST>',
'PORT': '3306',
'OPTIONS': {
'ssl': {'ca': '<PATH TO CA CERT>',
'cert': '<PATH TO CLIENT CERT>',
'key': '<PATH TO CLIENT KEY>'
}
}
}
}
Je ne suis pas tout à fait sûr que le "Doit être" dans la première phrase est correct, sauf si Cert + Key L'authentification B> est utilisé (contrairement à la cryptée simplement du trafic réseau).
Je reçois une "erreur de connexion SSL: ssl_ctx_set_default_verify_paths a échoué")
"Erreur lors de l'exécution J'ai utilisé PIP pour installer le package DJANGO-MYSQL-SSL. Cela ne fonctionnait toujours pas. Je devais changer" ca "à" SSL-ca "Et maintenant ça marche. p> Je ne sais pas si c'est en train d'utiliser un cryptage, mais cela ne jette plus une erreur. Je suis en cours d'exécution d'une application Django locale connectée à un Instance AWS MariADB. P> Edit: le package DJANGO-MYSQL-SSL n'est pas requis à partir de Django 1.8, car la fonctionnalité est intégrée maintenant.
Voir la section des dépendances dans la description du package ici P> Cette application est confirmée pour fonctionner avec Django 1.5. Il devrait aussi
Travailler avec Django 1.6-1.7. Ce plugin n'est pas nécessaire pour Django 1.8,
Comme la capacité est intégrée au noyau. p>
blockQuote> p> Python Manage.py migrate code>
Dépendances H2>
J'ai la même erreur et 'SSL': {'SSL-CA': '
"Je ne sais pas si c'est en train d'utiliser le cryptage" i> @bbaker, la connexion sera cryptée, j'ai vérifié en faisant Afficher le statut de session comme 'ssl_cipher' code>.
dans le cas de la connexion cryptée SSL aura probablement besoin de mysql passe une liste de chiffrement par défaut à la bibliothèque SSL.
Plus de détails peuvent être trouvés ici: P> ne peut pas laisser des commentaires pour @Drew réponse, alors laissez-le en être neuf. p> p> Cipher code> paramètre