我想强制Django使用SSL连接到我的postgres数据库。
This question表示我需要将sslmode='require'
传递给psycopg2 connect调用。如何将其添加到Django的数据库参数?
答案 0 :(得分:7)
将'OPTIONS': {'sslmode': 'require'},
添加到数据库配置中。例如:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': "db_name",
'USER': "db_username",
'PASSWORD': "db_password",
'HOST': "db_host",
'OPTIONS': {'sslmode': 'require'},
},
}
答案 1 :(得分:5)
如果要配置数据库URL,则可以将选项作为查询参数传递:
DATABASE_URL=postgres://USER:PASSWORD@HOST:PORT/NAME?sslmode=require
这既适用于Django Configurations也适用于Django Environ。
Django配置是基于dj_database_url
构建的,因此您也可以按照@frmdstryr所说的方式传递ssl_require=True
:
DATABASES = values.DatabaseURLValue(environ_required=True, ssl_require=True)
答案 2 :(得分:0)
如果您使用的是dj_database_url,则可以传递ssl_require=True
来为您设置选项。
import dj_database_url
DATABASES['default'] = dj_database_url.config(ssl_require=True)