Django 使用证书身份验证连接到 Postgresql

new*_*bie 5 django postgresql

在 Django 1.9 中,我必须在 settings.py 中进行哪些更改才能使用证书身份验证连接到 postgresql 数据库?

dan*_*gel 5

添加这个settings.py对我有用:

import os

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': '<name>',
        'USER': '<user>',
        'PASSWORD': '<password>',
        'HOST': '<host>',
        'PORT': '25060',   
        'OPTIONS': {
            'sslmode': 'verify-full',
            'sslrootcert': os.path.join(BASE_DIR, 'ca-certificate.crt'),
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

  • @MalikFaiq 事实并非如此。 (2认同)

jja*_*nes 2

据我所知,django 使用 psycopg2,而 psycopg2 使用 libpq。这意味着您不需要对 settings.py 进行任何更改。

您必须正确配置服务器,以便它要求并知道如何验证证书,并且在客户端,您需要将 crt 和密钥放在正确的目录中(例如 ~/.postgresql),以便 libpq 知道如何找到他们。一旦正确完成,它应该可以正常工作,无需更改任何特定于 Django 的代码。