powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Поднятие и настройка SSL
19 сообщений из 19, страница 1 из 1
Поднятие и настройка SSL
    #38902686
Midgard90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрых суток!
Решил поковырять соединение по SSL, задолбал гугл и яндекс, перечитал мануалы Postgres, но конкретно для чайничка нет ничего.. хотел бы наставления получить, как что делать и в какой последовательности. На данный момент дела обстоят так:
1) Поставил OpenSSL (запускается ровно только от админа)
2) Сгенерил сертификаты и ключи: server.key, server.crt, root.key, root.crt. как получить файлик root.clr получить не смог, недопёр как...
3) В файле postgresql.conf включил:
авторssl = on # (change requires restart)
ssl_cert_file = 'server.crt' # (change requires restart)
ssl_key_file = 'server.key' # (change requires restart)
но также не допёр до следующих строк:
автор#ssl_ciphers = 'DEFAULT:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers
#ssl_renegotiation_limit = 512MB # amount of data between renegotiations
#ssl_ca_file = '' # (change requires restart)
#ssl_crl_file = '' # (change requires restart)
На этом дело встало... Где я запнулся или не доделал? И какие действия дальше? А именно - куда клиенту нужно ставить сертификат, или как использовать приложением? Postgres под Windows, клиенты тоже под окном
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #38905478
Midgard90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неужели этим никто не занимался? С OpenSSL разобрался, как Postgre настроить, непойму
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #38905644
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midgard90,

Посмотрите вот этот докладик
http://www.pgcon.org/2009/schedule/events/120.en.html

Еще можно почитать книгу
http://www.ozon.ru/context/detail/id/19133383/
Администрирование PostgreSQL 9. Книга рецептов
там на странице 159-161 описывается как всё это настроить и использовать.
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #38906989
Midgard90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё вроде получается, спасибо за статью и книгу, её уже листал)
Не получается сгенерить crl файл в OpenSSL, выкидывает ошибку чтения файла /DemoCA/private/cakey.pem... корневые, клиенсткие и ключи сгенерились. Сервер Postgres я так понял из за этого crl не хочет нормально стартовать... Или может кто скажет что в нём должно быть? Пробовал пустой txt сделать crl, фокус не вышел.. В нём же откатанные сертификаты раняться? если таковых нет, то и файл пустой? или я ошибаюсь?
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #38907957
Midgard90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе добился желаемого, опишу, вдруг кому понадобиться:
1) установил OpenSSL (можно установщиком, можно собрать в студии)
2) в консоли OpenSSL Генерируем необходимые файлы:
авторсоздаём корневой сертификат и ключ:
openssl req -config conf.cnf -new -x509 -newkey rsa:2048 -days 3650 -out ca.crt -keyout ca.key

Создаём файл отзывов:
openssl ca -config conf.cnf -gencrl -out server.crl


Запрос на сертификат клиента
openssl req -config conf.cnf -newkey rsa:2048 -days 1825 -keyout server.key -out server.csr

Подписываем запрос на сертификат корневого сертификата сервера:
openssl ca -config conf.cnf -days 1826 -policy policy_anything -keyfile ca.key -cert ca.crt -in server.csr -out server.crt

В итоге получаем 4 файлика.

Далее в postgresql.conf меняем следующие строки и указываем наши файлы (должны лежать в папке data):
авторssl = on # (change requires restart)
#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
# (change requires restart)
#ssl_prefer_server_ciphers = on # (change requires restart)
#ssl_ecdh_curve = 'prime256v1' # (change requires restart)
#ssl_renegotiation_limit = 512MB # amount of data between renegotiations
ssl_cert_file = 'server.crt' # (change requires restart)
ssl_key_file = 'server.key' # (change requires restart)
ssl_ca_file = 'ca.crt' # (change requires restart)
ssl_crl_file = 'server.crl' # (change requires restart)

В файле pg_hba.conf добавляем или заменяем запись:
автор# IPv4 local connections:
hostssl all all all trust


Перезапускаем postgres (не службу, а консолью):
авторpg_ctl -D C:\pgsql\data -l logfile.log stop
pg_ctl -D C:\pgsql\data -l logfile.log start
postgres.exe -D "c:\pgsql\data" -l
psql -U postgres -h localhost

Сервер должен спросить пароль сертификата, и выдать сообщение:
авторSSL-соединение (протокол: TLSv1.2, шифр: ECDHE-RSA-AES256-GCM-SHA384, бит: 256,
сжатие: выкл.)


Всё работает, но неудобная ситуация: при подключении клиентской проги или того-же pg-admina, выполнение любого запроса всегда требует ввести пароль от сетрификата, притом требует только в консоле, где ребутили сервер. Случайно заметил..
Кажется идиотизмом, но спрашивает сервер... как с этим быть? Отключить где или в запросах посылать или?
Пробовал сертификат установить в винду, толку как и ождалось не дало. Или где я промахнулся?
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #38910031
Midgard90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё, добился желаемого в полном объёме. Можно закинуть как статьёй "Настройка SSL в Postgres под Windows", пригодиться. Тестировал на 2х машинах, в локальной сети и через инет.
Последовательность действий:
1) Качаем OpenSSL , устанавливаем. При вопросе размещения своих файлов выбираем "/bin", то есть в свою корневую папку, а не в винду.
2) Запускаем OpenSSL (если напишет что не сумел прочитать файл openssl.conf перезапускаем от админа). В папке bin создаём папку (у меня "1"), в неё будем кидать что сгенерится.
3) В консоли вбиваем следующие команды (генерируем ключи и сертификаты для postgre):

req -new -text -out 1/server.req
//Потребуется придумать пароль, повторить его ввод
//После генерации потребуется заполнить несколько полей данных (желательно правдивых)

ca -gencrl -out 1/root.crl
//Генерим файл-список отзывов сертификатов.
//На этом этапе может выскочить ошибка индексации в файлах serial,cacert.pem или других. Решение беды - создаём в папке DemoCA файл crlnumber, без разрешения пустой. Скорее всего его нет по указанной директории.

rsa -in privkey.pem -out 1/server.key
//Генерим ключ сертификата сервера, потребуется ввод придуманного ранее пароля.

req -x509 -in 1/server.req -text -key 1/server.key -out 1/server.crt -days 3650
//Подписываем и создаём сам сертификат на 10 лет (можно меньше/больше).

rsa -in privkey.pem -out 1/client.key
//Аналогично генерим ключ сертификата клиента, также ввод того-же пароля

req -x509 -in 1/server.req -text -key 1/client.key -out 1/client.crt -days 3650
//Снова подписываем.

В итоге получаем 6 файлов: server.req, server.key, server.crt, server.crl, client.key, client.crt.

4) файлы server.key, server.crt, server.crl кидаем в ..\postgresql\...\data\ (где лежат файлы конфига)

5) в postgresql.conf строку ssl = off меняем на ssl = on , более можно не усердствовать, закрываем.
6) в файле pg_hba.conf добавляем, а лучше меняем хосты:
автор#host all all all trust
hostssl all all all trust
дабы убедиться в исключительном ssl...
7) Ребутим сервер, проверяем запуск службы postgresql (при включенном ssl служба не всегда хочет сама стартовать, пока не разобрался в причине)
8)На клиентской машине, либо на самом сервере заходим: C:\Users\...\AppData\Roaming\postgresql\ , если такой папки нет, создаём, и в неё кидаем файл client.crt (можно установить сертификат, но погоды не изменит)
9) Через ODBC подключения в настройках поля SSL mode - verify-full или verify-ca , проверяем соединение, должно быть успешным.
10) Чтобы окончательно убедиться в работоспособности, консольно заходим в psql:
pg_ctl -D "C:\Program Files\PostgreSQL\...\data" -l logfile.log start Должно вывалиться сообщение вида:
SSL-соединение (шифр: DHE-RSA-AES256-SHA, бит: 256)

на всех клиентах при подключении стоит закинуть файл в указанную папку.
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #38923671
crause
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midgard90 ca -gencrl -out 1/root.crl

откуда взять эту программу?
openssl ca ..... пишет ошибку
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #38924559
crause
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crauseMidgard90 ca -gencrl -out 1/root.crl

откуда взять эту программу?
openssl ca ..... пишет ошибку

пришлось использовать OpenSSL двух сборок.
грешу на кривизну своих рук.
ТСМожно закинуть как статьёй "Настройка SSL в Postgres под Windows"
существует ли статья? если ТС делал под виндой то у него ошибка в слешах, в windows пути указываются "\"


знатоки почему openssl требует openssl.cnf или openssl.cfg зависит от сборки ???
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Поднятие и настройка SSL
    #39291265
Midgard90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, зависит от сборки.
Сейчас тоже столкнулся с:
авторca -gencrl -out 1/root.crl
Вываливает кучу ошибок. нынешняя версия: 1.0.2h x64. На момент написания статьи была вроде 0.9.8 или как-то так...
Кто может разбирал подобное?:
авторOpenSSL> ca -gencrl -out C:\iis\crl.crl
Using configuration from C:\OpenSSL-Win64\bin\openssl.cfg
Error opening CA private key c:/iis/private/cakey.pem
4024:error:02001002:system library:fopen:No such file or directory:.\crypto\bio\bss_file.c:398:fopen('c:/iis/private/cakey.pem','rb')
4024:error:20074002:BIO routines:FILE_CTRL:system lib:.\crypto\bio\bss_file.c:400:
unable to load CA private key
error in ca
в конфигурационном файле вообще нет таких путей, папок или чего подобного, чё он туда лезет то?
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #39291270
Midgard90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, и слеши он кушает и тот и другой без разницы)
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #39310121
imobile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВсё, добился желаемого в полном объёме. Можно закинуть как статьёй "Настройка SSL в Postgres под Windows", пригодиться. Тестировал на 2х машинах, в локальной сети и через инет.
Последовательность действий: Сделал то же самое, тоже пишет все окей ssl и все дела, но подключаются клиенты на ура, даже у кого нет сертификатов и никогда не было
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #39310361
imobile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже пароль не нужен КАК ВКЛЮЧИТЬ ПАРОЛЬ
Если конектиться с другого компьютера и не вводить пароль то подключается.
hostssl all all 0.0.0.0/0 md5
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #39310385
imobile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче пользователь postgres имеет доступ ко всему без пароля.
Это мега о%ный косяк, такое нельзя даже в бэту выкладывать
9.5 9.6
Наверняка можно что-то сделать, подскажите что?
С самого начала мне эта БД не нравилась...
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #39310414
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imobileКороче пользователь postgres имеет доступ ко всему без пароля.
Это мега о%ный косяк, такое нельзя даже в бэту выкладывать
9.5 9.6
Наверняка можно что-то сделать, подскажите что?
С самого начала мне эта БД не нравилась...

Это косяк вашей настройки базы.
1)покажите весь pg_hba.conf незакоментированный
2)делали вы релоад/рестарт базы после изменений в pg_hba.conf


--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #39311162
imobile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim BogukimobileКороче пользователь postgres имеет доступ ко всему без пароля.
Это мега о%ный косяк, такое нельзя даже в бэту выкладывать
9.5 9.6
Наверняка можно что-то сделать, подскажите что?
С самого начала мне эта БД не нравилась...

Это косяк вашей настройки базы.
1)покажите весь pg_hba.conf незакоментированный
2)делали вы релоад/рестарт базы после изменений в pg_hba.conf


--
Maxim Boguk
www.postgresql-consulting.ru
авторhostssl all all all trust

hostssl all all 127.0.0.1/32 md5
hostssl all all 0.0.0.0/0 md5
Меняли много. Одна из последних.
Вторая строчка не обязательная. А если первую не написать, то локалхост подсоединится не может, хотя другие без пароля - пожалуйста
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #39311165
imobile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk2)делали вы релоад/рестарт базы после изменений в pg_hba.conf

Перезагрузка компьютера считается?
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #39311200
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imobile,

hostssl all all all trust

ну так что вы хотите то с включенным trust для всех хостов. при подключении выбирается первая подходящая строка, которая матчит хост и из нее берется метод аутентификации.

для локальных подключений существует специальный метод peer. trust вообще не стоит использовать нигде кроме тестовых машин.
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #39311219
imobile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexiusimobile,

hostssl all all all trust

ну так что вы хотите то с включенным trust для всех хостов. при подключении выбирается первая подходящая строка, которая матчит хост и из нее берется метод аутентификации.

для локальных подключений существует специальный метод peer. trust вообще не стоит использовать нигде кроме тестовых машин.Видимо вы не дочитали до конца мое сообщение. Пробовал без этой строчки
...
Рейтинг: 0 / 0
Поднятие и настройка SSL
    #39311221
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imobileAlexiusimobile,

пропущено...


ну так что вы хотите то с включенным trust для всех хостов. при подключении выбирается первая подходящая строка, которая матчит хост и из нее берется метод аутентификации.

для локальных подключений существует специальный метод peer. trust вообще не стоит использовать нигде кроме тестовых машин.Видимо вы не дочитали до конца мое сообщение. Пробовал без этой строчки

без этой строчки вы явно не рестартовали/релоадили базу после изменений.
Потому что именно она у вас работает.


--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Поднятие и настройка SSL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]