gooamoko
Зарегистрирован: 26.12.2003 Сообщения: 98
|
Добавлено: Пт Ноя 13 2009 06:35 Заголовок сообщения: Помогите разобраться с PostgreSQL и SSL |
|
|
Здравствуйте.
Имею Slackware 12 c установленным на нем PostgreSQL 8.4.1
Решил настроить SSL для подключения из psql и Java (JDBC).
Пробовал создавать самоподписанный сертификат для сервера (в точности так, как описано в официальном мануале), получил на выходе два файла (server.key и server.crt). С правами доступа все в порядке, сервер запускается, работает.
Дальше - сложнее. В мануале вообще не написано откуда берутся сертификат и клиентский ключ для клиента. Пробовал сгенерировать по подобию сервера - не получается. При подключении выдается Connection Requests valid client certificate (или что-то вроде, я сейчас не дома, если потребуется - скину в точности сообщение).
Потом я попробовал создать корневой самоподписанный сертификат, его добавить в список доверенных для SSL своего, далее создал приватные ключи и (подписанные моим корневым самоподписанным сертификатом) сертификаты для клиента и сервера. Все равно выдается такая же ошибка.
Что делать? Как обеспечить работу клиента...
Буквально сейчас мне пришла в голову идея... Может надо создать как в инструкции самоподписанный сертификат для сервера, а потом создавать подписанный им сертификат клиента? Может так надо...
Как быть с Java? При помощи утилиты keytool я добавляю сертификат сервера в список доверенных, но все равно выдается та же ошибка. Причем текст ошибки абсолютно идентичен и для psql и для JDBC драйвера. Это говорит либо о том, что механизм соединения одинаков (что врядли) либо о том, что проблема все-таки в сертификате сервера... но там все делал по мануалу и все равно не работает.
Посоветуйте что-нибудь. Заранее спасибо. _________________ Что один сделал, другой завсегда сломать сможет |
|
gooamoko
Зарегистрирован: 26.12.2003 Сообщения: 98
|
Добавлено: Вт Ноя 17 2009 15:56 Заголовок сообщения: |
|
|
Итак - разобрался.
Сам дурак... Настроил вроде все правильно. Только в pg_hba.conf я указал для своей подсети в графе Method "cert". Собственно, из-за этого и были проблемы. Как только я поменял "cert" на "md5" в графе Method - все стало работать.
Итак, что я делал:
1. Создал корневой самоподписанный сертификат.
2. Создал частные ключи и запросы на подпись сертификата для клиента и сервера.
3. Подписал корневым сертификатом запросы на подпись для клиента и сервера.
4. Еще я сдалал корневой самоподписанный сертификат проверенным для системы. То есть, по умолчанию, система не доверяла ему, а я выполнил пару несложных действий чтобы сертификат оказался в круге доверия.
Подробнее - в моей недостатье:
http://www.gooamoko.ru/linux/postgres01.html _________________ Что один сделал, другой завсегда сломать сможет |
|