Python MySQLDB SSL连接
我将数据库设置为需要ssl。我已经确认我可以通过传递公钥通过命令行连接到db[并且已经确认如果我不传递公钥我就无法连接] 我在django应用程序中遇到的错误与我没有传递密钥时的错误相同。似乎我没有正确设置settings.py以传递公钥的路径 我的设置有什么问题?我正在使用python mysqldbPython MySQLDB SSL连接,python,mysql,database,django,ssl,Python,Mysql,Database,Django,Ssl,我将数据库设置为需要ssl。我已经确认我可以通过传递公钥通过命令行连接到db[并且已经确认如果我不传递公钥我就无法连接] 我在django应用程序中遇到的错误与我没有传递密钥时的错误相同。似乎我没有正确设置settings.py以传递公钥的路径 我的设置有什么问题?我正在使用python mysqldb DATABASES['default'] = { 'ENGINE': 'django.db.backends.mysql', 'HOST': 'my-host-goes-here
DATABASES['default'] = {
'ENGINE': 'django.db.backends.mysql',
'HOST': 'my-host-goes-here',
'USER': 'my-user-goes-here',
'NAME': 'my-db-name-goes-here',
'PASSWORD': 'my-db-pass-goes-here',
'OPTIONS': {
'SSL': '/path/to/cert.pem',
}
}
找到了答案。选项应如下所示:
'OPTIONS': {'ssl': {'ca':'/path/to/cert.pem',},},
确保保留逗号,否则解析似乎会失败 mysql客户端必须提供三个密钥: 证书 客户证书 客户端密钥 有关创建这些密钥和设置服务器的说明,请参阅Mysql文档: 注意:有一个公开问题似乎与使用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>'
}
}
}
}
数据库={
“默认值”:{
'ENGINE':'django.db.backends.mysql',
“姓名”:“,
“用户”:“,
“密码”:“,
“主持人”:“,
“端口”:“3306”
“选项”:{
'ssl':{'ca':'',
“证书”:“,
“键”:”
}
}
}
}
您是否能够使用bareMySQLdb
进行连接?是的,我可以按照以下说明进行连接:但我似乎无法在django的数据库选项中找到表示ssl_设置的等效方法。