我的postgres服务器应该强制SSL连接但是我想直接从Django应用程序验证这个设置。有没有办法检查数据库连接(可能通过manage.py shell
并确保连接是SSL?
答案 0 :(得分:2)
导航到python manage.py dbshell
后,可以通过在连接信息中查找密码来确认连接已加密。
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES128-GCM-SHA256, bits:
128, compression: off)
否则,您将看不到SSL信息。
答案 1 :(得分:0)
我不知道如何从您的Django应用程序配置它,但也许您可以在sslmode
连接参数中告诉postgres require SSL?
答案 2 :(得分:0)
我相信我找到了一种方法,但我会在接受之前等待人们批评这种方法:
create extension sslinfo;
以安装sslinfo扩展。对于没有超级用户访问权限的人来说,这可能是不可能的,但是在我配置服务器端SSL实施的情况下,给出了SU访问权。manage.py shell
:-
from django.db import connection
with connection.cursor() as cursor:
cursor.execute('select ssl_is_used();')
output = cursor.fetchall()
print(output) # will print [(True,)] if SSL
这将执行原始SQL,如果启用SSL,则应返回[(True,)]。