2023-07-26 18:55:24 +03:00
|
|
|
|
---
|
|
|
|
|
title: Соединение по TLS в Postgres Pro
|
|
|
|
|
description: С использованием scrum-sha-256
|
|
|
|
|
date: 2022-11-28T20:25:00+05:00
|
|
|
|
|
tags: [linux, postgres, tls]
|
|
|
|
|
---
|
|
|
|
|
## Создание сертификата
|
2023-12-26 01:34:28 +03:00
|
|
|
|
|
2023-07-26 18:55:24 +03:00
|
|
|
|
В этом посте я буду использовать самоподписанный сертификат, но сертификат от Let's Encrypt тоже подойдёт.
|
|
|
|
|
Сертификат и ключ желательно держать в той же папке, где лежат конфиги Postgres Pro.
|
2023-12-26 01:34:28 +03:00
|
|
|
|
```bash
|
2024-03-13 13:20:06 +03:00
|
|
|
|
openssl req -x509 -newkey rsa:4096 -nodes -keyout <key>.key -out <cert>.pem -sha256 -days 365
|
2023-07-26 18:55:24 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Включение TLS
|
2023-12-26 01:34:28 +03:00
|
|
|
|
|
2023-09-30 14:18:44 +03:00
|
|
|
|
В файл `/var/lib/pgpro/std-*/data/postgresql.conf` необходимо добавить следующие строки:
|
2024-11-03 15:11:52 +03:00
|
|
|
|
```python
|
2023-07-26 18:55:24 +03:00
|
|
|
|
ssl = on
|
|
|
|
|
ssl_cert_file = '<cert>.pem'
|
|
|
|
|
ssl_key_file = '<key>.pem'
|
|
|
|
|
listen_addresses = 'localhost, <master-ip>'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Разрешение доступа через TLS
|
2023-12-26 01:34:28 +03:00
|
|
|
|
|
2023-09-30 14:18:44 +03:00
|
|
|
|
В файл `/var/lib/pgpro/std-*/data/pg_hba.conf` необходимо добавить следующие строки:
|
2024-11-03 15:11:52 +03:00
|
|
|
|
```python
|
2023-07-26 18:55:24 +03:00
|
|
|
|
hostssl <user> <database> <client-ip> scram-sha-256
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## (ре)Генерация пароля
|
2023-12-26 01:34:28 +03:00
|
|
|
|
|
2023-07-26 18:55:24 +03:00
|
|
|
|
В случае, если до этого хеш-алгоритм пароля был не scram-sha-256, то необходимо пересоздать пароль:
|
2023-09-24 18:58:33 +03:00
|
|
|
|
```shell
|
2023-07-26 18:55:24 +03:00
|
|
|
|
psql -c \password
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Перезапуск Postgres Pro
|
2023-09-24 18:58:33 +03:00
|
|
|
|
```shell
|
2023-07-26 18:55:24 +03:00
|
|
|
|
systemctl restart postgres*
|
|
|
|
|
```
|
|
|
|
|
|