首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python MySQLDB SSL连接

Python MySQLDB SSL连接
EN

Stack Overflow用户
提问于 2010-07-04 11:38:14
回答 2查看 8K关注 0票数 6

我将我的数据库设置为需要ssl。我已经确认可以通过传递公钥通过命令行连接到数据库,并且已经确认如果不传递公钥就无法连接

我在我的django应用程序中得到了与我没有传递密钥时相同的错误。似乎我没有正确设置我的settings.py来将路径传递给公钥。

我的设置有什么问题?我使用python-mysqldb。

代码语言:javascript
复制
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',
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-05 01:24:32

找到答案了。选项应如下所示:

代码语言:javascript
复制
'OPTIONS': {'ssl': {'ca':'/path/to/cert.pem',},},

确保保留逗号,否则解析似乎会失败?

票数 8
EN

Stack Overflow用户

发布于 2012-09-06 00:16:22

mysql客户端必须提供三个密钥:

CA证书客户端证书客户端密钥

有关创建这些密钥和设置服务器的说明,请参阅Mysql文档:http://dev.mysql.com/doc/refman/5.5/en/creating-ssl-certs.html

注意:有一个未解决的问题似乎与使用OpenSSLv1.0.1为MySQL5.5.x (http://bugs.mysql.com/bug.php?id=64870)创建证书有关

以下是Django设置文件的示例条目:

代码语言:javascript
复制
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>'
                                }
                          }
            }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3173650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档