我正在尝试将Django连接到可通过ssl连接访问的mysql数据库.我该如何配置?
我的第一个猜测是设置数据库定义的'OPTIONS'属性.但是,我找不到有关可能使用的选项的信息.选项'ssl':'/ map/to/ca-cert.pem'不起作用.
以下命令似乎有效:
mysql -h url.to.host -u lizard -p --ssl-ca=./ca-cert.pem
Run Code Online (Sandbox Code Playgroud)
编辑:好的我正在看python-mysqldb文档...也许我可以在那里找到答案.
Dan*_*man 15
Django使用Python MySQLdb库与MySQL进行交互.查看MySQLdb连接文档,看起来该ssl选项需要字典参数.所以这可能有效:
'OPTIONS': {'ssl': {'key': '/map/to/ca-cert.pem'}}
Run Code Online (Sandbox Code Playgroud)
必须为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>'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)