我想强制Django使用SSL连接到我的postgres数据库。This question表示我需要将sslmode='require'传递给psycopg2连接调用。如何将其添加到Django的数据库参数中?
sslmode='require'
k4ymrczo1#
将'OPTIONS': {'sslmode': 'require'},添加到数据库配置中。例如:
'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'}, }, }
作为jklingen92 points out,如果您使用的是数据库URL,例如通过django-environ,请将?sslmode=require添加到数据库URL的末尾。例如:
?sslmode=require
postgres://<DB_USERNAME>:<DB_PASSWORD>@<DB_HOST>:<PORT>/<DB_NAME>?sslmode=require
yeotifhr2#
如果要配置数据库URL,则可以将选项作为查询参数传递:
DATABASE_URL=postgres://USER:PASSWORD@HOST:PORT/NAME?sslmode=require
这适用于Django Configurations和Django Environ。Django配置是基于dj_database_url构建的,所以你也可以传递ssl_require=True,就像@frmdstryr说的:
dj_database_url
ssl_require=True
DATABASES = values.DatabaseURLValue(environ_required=True, ssl_require=True)
fiei3ece3#
如果你使用的是dj_database_url,你可以传递ssl_require=True,它会为你设置选项。
import dj_database_url DATABASES['default'] = dj_database_url.config(ssl_require=True)
brgchamk4#
编辑settings.py文件,如下所示:
settings.py
DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # }, 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': 'server-ip', 'PORT': '5432', 'NAME': 'database-name', 'USER': 'username', 'PASSWORD': 'password', 'OPTIONS': { 'sslmode': 'require', 'sslcert': '/path/to/file', 'sslkey': '/path/to/file', 'sslrootcert': '/path/to/file', }, }, }
参考visit here
4条答案
按热度按时间k4ymrczo1#
将
'OPTIONS': {'sslmode': 'require'},
添加到数据库配置中。例如:作为jklingen92 points out,如果您使用的是数据库URL,例如通过django-environ,请将
?sslmode=require
添加到数据库URL的末尾。例如:yeotifhr2#
如果要配置数据库URL,则可以将选项作为查询参数传递:
这适用于Django Configurations和Django Environ。Django配置是基于
dj_database_url
构建的,所以你也可以传递ssl_require=True
,就像@frmdstryr说的:fiei3ece3#
如果你使用的是dj_database_url,你可以传递
ssl_require=True
,它会为你设置选项。brgchamk4#
编辑
settings.py
文件,如下所示:参考visit here