Как подключить Django к базе данных mysql через ssl-соединение? - PullRequest
7 голосов
/ 01 декабря 2010

Я пытаюсь подключить Django к базе данных mysql, доступной через соединение ssl. Как мне это настроить?

Моим первым предположением будет установка свойства 'OPTIONS' определения базы данных. Однако я не могу найти информацию о том, какие возможные варианты использовать. Опция 'ssl': '/map/to/ca-cert.pem' не работает.

Кажется, работает следующая команда:

mysql -h url.to.host -u lizard -p --ssl-ca=./ca-cert.pem

Edit: Ok, я смотрю документацию по python-mysqldb ... возможно, я смогу найти ответ там

Ответы [ 3 ]

14 голосов
/ 01 декабря 2010

Django использует библиотеку Python MySQLdb для взаимодействия с MySQL. Глядя на документацию по подключению MySQLdb , похоже, что для опции ssl требуется словарный аргумент. Так что это может сработать:

'OPTIONS': {'ssl': {'key': '/map/to/ca-cert.pem'}}
6 голосов
/ 05 сентября 2012

Клиент mysql должен быть снабжен тремя ключами:

CA сертификат сертификат клиента клиентский ключ

Инструкции по созданию этих ключей и настройке сервера см. В документации Mysql: http://dev.mysql.com/doc/refman/5.5/en/creating-ssl-certs.html

ПРИМЕЧАНИЕ. Существует открытая проблема, связанная с использованием openssl v1.0.1 для создания сертификатов для mysql 5.5.x (http://bugs.mysql.com/bug.php?id=64870)

Это пример записи для файла настроек Django:

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>'
                                }
                          }
            }
}
2 голосов
/ 28 декабря 2017

Я получаю сообщение об ошибке «Ошибка подключения SSL: сбой SSL_CTX_set_default_verify_paths») при запуске python manage.py migrate

Я использовал pip для установки пакета django-mysql-ssl.Это все еще не работало.Мне пришлось изменить «CA» на «SSL-CA», и теперь это работает.

'OPTIONS':  {
                    'ssl': {'ssl-ca': '<PATH TO CA CERT>',

                            }
                      }

Я не уверен, использует ли он на самом деле шифрование, но больше не выдает ошибку.Я использую локальное приложение django, подключенное к экземпляру AWS mariaDB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...