Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django-postgres:如何验证数据库连接是否为SSL?_Django_Postgresql_Ssl - Fatal编程技术网

Django-postgres:如何验证数据库连接是否为SSL?

Django-postgres:如何验证数据库连接是否为SSL?,django,postgresql,ssl,Django,Postgresql,Ssl,我的postgres服务器应该强制SSL连接,但是我想直接从Django应用程序验证此设置。有没有办法检查数据库连接(可能通过manage.py shell并确保连接是SSL?我不知道如何从Django应用程序中配置它,但也许你可以告诉postgres在sslmode连接参数中进行配置?我相信我找到了一种方法,但如果有人对这种方法提出批评,我会等到接受:)> 以超级用户身份连接到数据库服务器并运行create extension sslinfo;以安装sslinfo扩展。对于一些没有超级用户访问

我的postgres服务器应该强制SSL连接,但是我想直接从Django应用程序验证此设置。有没有办法检查数据库连接(可能通过
manage.py shell
并确保连接是SSL?

我不知道如何从Django应用程序中配置它,但也许你可以告诉postgres在
sslmode
连接参数中进行配置?

我相信我找到了一种方法,但如果有人对这种方法提出批评,我会等到接受:

)>
  • 以超级用户身份连接到数据库服务器并运行
    create extension sslinfo;
    以安装sslinfo扩展。对于一些没有超级用户访问权限的用户来说,这可能是不可能的,但是在我配置服务器端SSL强制的情况下,会提供SU访问权限
  • manage.py shell
    中运行以下命令:
  • -

    这将执行原始SQL,如果启用SSL,该原始SQL将返回[(True,)]


    相关

    在导航到
    python manage.py dbshell

    SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 
    128, compression: off)
    

    否则,您将看不到SSL信息。

    可以在Django数据库设置()中配置的是。但是,这并不能真正告诉我现有连接是否为SSL(例如,如果我有一个DB服务器强制SSL,而没有在Django中配置SSL)。但是,我想我找到了一种方法,我会发布。@JadS好的,据我所知,您的解决方案实际上可以让您验证它是否使用SSL,但它需要一个模块。IMHO,如果您告诉您的postgres驱动程序您需要SSL,如果它允许您在没有SSL的情况下进行连接,这难道不是一个错误吗?另外,这篇文章现在链接到,它告诉您具体的我不知道如何为你的Django应用程序设置参数。不过,我会把你的答案标记为解决方案,因为这是你真正想要的。棒极了。优雅而简单。
    SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 
    128, compression: off)