Невозможно заставить 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.