Невозможно заставить Postgresql принимать только SSL-соединения

Вот моя текущая конфигурация:

postgresql.conf:

ssl = on
ssl_cert_file = '/etc/postgresql/12/main/fullchain.pem'
ssl_key_file = '/etc/postgresql/12/main/privkey.pem'

pg_hba.conf:

local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5
# IPv4 remote connections:
hostssl all             all             0.0.0.0/0               md5
# IPv6 remote connections:
hostssl all             all             ::/0                    md5

По-прежнему, мое приложение Django способно переносить изменения базы данных с и без 'OPTIONS': {'sslmode': 'require'} и это не то, что я хочу. Я хочу, чтобы Postgresql отклонял не-ssl соединения, и я не знаю, что я здесь упускаю.

P.S.: Сертификат действителен и создан certbot.

Выглядит нормально. Для проверки следует попробовать с

'OPTIONS': {'sslmode': 'disable'}

Вероятно, по умолчанию установлено значение prefer, поэтому он все еще подключался с помощью SSL.

Вернуться на верх