Не удается подключиться к postgresql на локальном хосте с использованием сертификата клиента ssl с django - PullRequest
1 голос
/ 27 февраля 2020

Я пытаюсь подключиться к postgresql на локальном хосте, используя клиентские сертификаты ssl через django. Однако я получаю следующую ошибку

django.db.utils.OperationalError: FATAL:  connection requires a valid client certificate

Я попробовал следующее

  1. Я могу подключиться к удаленной базе данных postgresql через Приложение django (с использованием набора различных сертификатов)

  2. Я могу подключиться к локальной базе данных (используя те же сертификаты ssl, которые не работают в django), используя psql ,

  3. Я могу подключиться к базе данных на локальном хосте через django shell и psycopg2, используя следующий код

psycopg2.connect("host=127.0.0.1 dbname=analyticslayer user=al-app password=... sslmode=verify-ca sslcert=/home/al-app/.postgresql/ps-analyticslayer-1-postgresql-al-app-ca.crt sslkey=/home/al-app/.postgresql/ps-analyticslayer-1-postgresql-al-app-key.pem sslrootcert=/home/al-app/.postgresql/vintercapital.com-ca.crt")
Я также проверил, что с сертификатами все в порядке, используя openssl verify

Я использую django 2.2.6 postgresql 10 ubuntu 18.04

был бы очень признателен за помощь с этой проблемой / Хакан

ОБНОВЛЕНИЕ

По запросу это postgresql log (/ var / log / postgresql / postgresql -10-main. log) когда я пытаюсь подключиться через django. Попытка подключения является частью сценария автоматического развертывания, который перезапускает базу данных.

2020-02-27 13:06:33.444 UTC [4627] LOG:  received fast shutdown request
2020-02-27 13:06:33.474 UTC [4627] LOG:  aborting any active transactions
2020-02-27 13:06:33.477 UTC [4627] LOG:  worker process: logical replication launcher (PID 4634) exited with exit code 1
2020-02-27 13:06:33.477 UTC [4629] LOG:  shutting down
2020-02-27 13:06:33.498 UTC [4627] LOG:  database system is shut down
2020-02-27 13:06:33.619 UTC [6293] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2020-02-27 13:06:33.619 UTC [6293] LOG:  listening on IPv6 address "::", port 5432
2020-02-27 13:06:33.621 UTC [6293] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2020-02-27 13:06:33.648 UTC [6294] LOG:  database system was shut down at 2020-02-27 13:06:33 UTC
2020-02-27 13:06:33.668 UTC [6293] LOG:  database system is ready to accept connections
2020-02-27 13:06:34.205 UTC [6301] [unknown]@[unknown] LOG:  incomplete startup packet
2020-02-27 13:06:34.715 UTC [6304] postgres@postgres FATAL:  password authentication failed for user "postgres"

*Multiple of these messages*

2020-02-27 13:06:39.831 UTC [6334] postgres@postgres DETAIL:  Password does not match for user "postgres".
        Connection matched pg_hba.conf line 85: "local   all             postgres                                md5"
2020-02-27 13:06:39.834 UTC [6335] [unknown]@[unknown] LOG:  incomplete startup packet
2020-02-27 13:08:05.351 UTC [6478] al-app@analyticslayer FATAL:  connection requires a valid client certificate
2020-02-27 13:11:43.679 UTC [6618] al-app@analyticslayer FATAL:  connection requires a valid client certificate
2020-02-27 14:03:48.243 UTC [6293] LOG:  received fast shutdown request

Когда я вхожу в систему с помощью psql с моего локального компьютера. Журнал выглядит так:

2020-02-28 17:18:59.525 UTC [11842] [unknown]@[unknown] LOG:  could not accept SSL connection: Success

Когда я захожу в оболочку django и выполняю код psycopg2, журнал ничего не регистрирует. Однако conn.closed дает мне 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...