Force SSL for Django Postgres connection

前端 未结 3 1887
一整个雨季
一整个雨季 2021-02-07 03:13

I want to force Django to use SSL to connect to my postgres database.

This question indicates that I need to pass sslmode=\'require\' to the psycopg2 connec

相关标签:
3条回答
  • 2021-02-07 03:23

    If you're using dj_database_url you can pass ssl_require=True which sets the option for you.

    import dj_database_url
    DATABASES['default'] = dj_database_url.config(ssl_require=True)
    
    0 讨论(0)
  • 2021-02-07 03:34

    If you're configuring a database URL, you can pass options as query parameters:

    DATABASE_URL=postgres://USER:PASSWORD@HOST:PORT/NAME?sslmode=require
    

    This works with both Django Configurations and with Django Environ. Django Configurations is built off of dj_database_url, so you can also pass ssl_require=True as @frmdstryr said:

    DATABASES = values.DatabaseURLValue(environ_required=True, ssl_require=True)
    
    0 讨论(0)
  • 2021-02-07 03:39

    Add 'OPTIONS': {'sslmode': 'require'}, to your database config. For example:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': "db_name",
            'USER': "db_username",
            'PASSWORD': "db_password",
            'HOST': "db_host",
            'OPTIONS': {'sslmode': 'require'},
        },
    }
    

    As jklingen92 points out, if you are using a database URL, such as through django-environ, add ?sslmode=require to the end of your database URL. For example:

    postgres://DB_USERNAME:DB_PASSWORD@DB_HOST:PORT/DB_NAME?sslmode=require
    
    0 讨论(0)
提交回复
热议问题