使用证书认证连接Django和Postgresql

5
在Django1.9中,我需要在settings.py文件中进行哪些更改以使用证书认证连接到postgresql数据库?
2个回答

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'),
        },
    },
}

将证书文件放在代码库中是否可行? - Malik Faiq
2
@MalikFaiq 不是这样的。 - wsgeorge
@MalikFaiq 证书文件从定义上来说是公开的,因此在存储在代码库中不会存在安全漏洞,并且在某些情况下这样做可能是有意义的,但从配置管理的角度来看,这可能不是最佳选择。 - pooley1994

2
据我所知,Django使用psycopg2,它又使用libpq。这意味着您不需要对settings.py进行任何更改。
您需要正确地配置服务器,以便它请求并知道如何验证证书,在客户端上,您需要将crt和key放在正确的目录中(例如~/.postgresql),以便libpq知道如何找到它们。一旦正确完成,就应该可以在不更改任何Django特定代码的情况下正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接