需要SSL,但服务器不支持(Django)

问题描述 投票:0回答:1

我正在开发一个测试项目作为练习,当我尝试将其迁移到数据库(MariaDB PhpMyAdmin)时,我收到此错误“django.db.utils.OperationalError:(2026,'TLS / SSL错误:需要SSL ,但服务器不支持')"

这就是我在

settings.py
中写的:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'schooldb',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '127.0.0.1',
        'PORT': '3307',
        # 'OPTIONS': {'init_command': "SET SQL_MODE='STRICT_TRANS_TABLES'"},
    }
}

我已经安装了mysqlclient。

python mysql django
1个回答
0
投票

首先,错误表明:您的 mariaDB 服务器需要 ssl 连接,但 django 应用程序中的设置未配置为使用 ssl。

您需要通过修改 .

cnf
.ini
文件来重新配置 mariaDB 服务器以支持 ssl。

[mysqld]
ssl-ca = /path-to-ca-cert.pem
ssl-cert = /path-to-server-cert.pem
ssl-key = /path-to-server-key.pem

并在您的 django 应用程序中添加

'OPTIONS'
字段。

DATABASES = {
...
      'OPTIONS' : {
        'ssl': {
            'ca': '/path-to-ca-cert.pem',   
            'cert': '/path-to-server-cert.pem', 
            'key': '/path-to-server-key.pem',
        }
    }
...

如果您不想启用 ssl,您可以将 mariaDB 配置为允许非 ssl 连接。只需修改您的

.cnf
文件即可。

[mysqld]
require_secure_transport = OFF

并通过命令重启 mariaDB 服务器

sudo systemctl restart mariadb
.

另外检查必要的 python 包以支持 ssl,例如 -

mysqlclient
PyMySQL

© www.soinside.com 2019 - 2024. All rights reserved.