Керування файлами cookie, які використовуються для реклами, таких як персоналізація реклами, ремаркетинг і аналіз ефективності реклами.
8.3.16. Налаштування SSL для PostgreSQL
При встановленні та видаленні сертифіката виконується перезапуск інстансу.
Шифрування TLS/SSL використовується для захисту даних, що передаються між клієнтом і сервером. За допомогою цієї інструкції можна налаштувати шифрування з використанням власного SSL-сертифіката з перевіркою відповідності адреси хоста.
- Згенеруйте файли сертифіката та ключа (в команді замість
example.psql.toolsу двох рядках вкажіть адресу хоста вашого інстансу):openssl req -x509 -newkey rsa:2048 \ -sha256 -days 365 \ -nodes \ -keyout server-key.pem \ -out server-cert.pem \ -subj "/CN=example.psql.tools" \ -addext "subjectAltName=DNS:example.psql.tools" \ -addext "keyUsage=digitalSignature,keyEncipherment" \ -addext "extendedKeyUsage=serverAuth" - Встановіть сертифікат у розділі «PostgreSQL» на вкладці «Налаштування → SSL» (поле з паролем приватного ключа залиште порожнім, якщо не вказували його під час генерації сертифіката та ключа):

- Перевірте адресу хоста у встановленому сертифікаті (у команді використовуйте ваші дані для підключення:
example.psql.tools— хост,12345— порт):openssl s_client -connect example.psql.tools:12345 -starttls postgres -showcerts </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -ext subjectAltNameБез встановленого сертифіката вивід виглядає так:
subject -issuer -ext subjectAltName subject=CN = adm.tools issuer=CN = adm.tools No extensions in certificateПісля встановлення сертифіката у виведенні буде адреса хоста вашого інстансу:
subject=CN = example.psql.tools issuer=CN = example.psql.tools X509v3 Subject Alternative Name: DNS:example.psql.tools - Підключіться до інстансу з використанням сертифіката та переконайтеся, що з’єднання зашифровано (в команді використовуйте ваші дані для підключення:
example.psql.tools— хост,12345— порт,user— користувач):psql "host=example.psql.tools port=59264 dbname=db1 user=user sslmode=verify-full sslrootcert=server-cert.pem"Виконайте SQL-запит:
SELECT ssl, version, cipher, bits, client_dn FROM pg_stat_ssl WHERE pid = pg_backend_pid();Якщо все налаштовано правильно, підключення проходить успішно і вивід виглядає так:
ssl | version | cipher | bits | client_dn -----+---------+------------------------+------+----------- t | TLSv1.3 | TLS_AES_256_GCM_SHA384 | 256 |