PostgreSQL podporuje připojení SSL, které uživatelům umožňuje bezpečné připojení k jejich databázím. V tomto článku se podíváme na to, jak povolit SSL v databázi PostgreSQL.
Jak povolit SSL v PostgreSQL
Zde jsou kroky k povolení připojení SSL v PostgreSQL. Na PostgreSQL serveru potřebujeme 3 certifikáty v datovém adresáři pro konfiguraci SSL. Jsou to:
- root.crt (důvěryhodný kořenový certifikát)
- server.crt (certifikát serveru)
- server.key (soukromý klíč)
Otevřete terminál a spusťte následující příkaz pro spuštění jako root
$ sudo -
$ cd /var/lib/pgsql/data
Vygenerujte soukromý klíč pomocí openssl. Budete vyzváni k zadání přístupové fráze.
$ openssl genrsa -des3 -out server.key 1024
Odebrat přístupovou frázi
$ openssl rsa -in server.key -out server.key
Bonusové čtení:Nejlepší databázové blogy ke sledování
Aktualizujte oprávnění k souboru a vlastnictví souboru soukromého klíče.
$ chmod 400 server.key
$ chown postgres.postgres server.key
Podobně vytvořte certifikát serveru
$ openssl req -new -key server.key -days 3650 -out server.crt -x509
Ve výše uvedeném příkazu -x509 označuje certifikát podepsaný svým držitelem. Budete vyzváni k zadání podrobností, jako je e-mail, země atd. Zadejte je a dokončete vygenerování certifikátu.
Protože používáme certifikát s vlastním podpisem, použijeme jako kořenový certifikát náš klíč serveru.
$ cp server.crt root.crt
Aktualizujte pg_hba.conf a přidejte následující řádky
# IPv4 remote connections for authenticated users hostssl all www-data 0.0.0.0/0 md5 clientcert=1 hostssl all postgres 0.0.0.0/0 md5 clientcert=1
Upravte soubor postgresql.conf a přidejte následující řádek
ssl = on
Restartujte PostgreSQL Server
$ /etc/init.d/postgresql restart
Bonusové čtení:Jak zvýšit maximální počet připojení v PostgreSQL
Povolte SSL v klientovi PostgreSQL
Potřebujeme také 3 soubory k povolení SSL v klientovi PostgreSQL. Uložíme je na ~/.postgresql/ adresář
- root.crt (důvěryhodný kořenový certifikát)
- postgresql.crt (klientský certifikát)
- postgresql.key (soukromý klíč)
Vytvořte postgresql.key na klientském počítači a odstraňte přístupovou frázi.
$openssl genrsa -des3 -out /tmp/postgresql.key 1024
$openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key
Bonusové čtení:Tipy pro ladění výkonu PostgreSQL
Dále vytvoříme postgresql.crt a podepíšeme jej pomocí důvěryhodného kořene (soubor soukromého klíče ze serveru). Poznámka , když budete vyzváni k zadání běžného názvu certifikátu (CN), nastavte jej na název databáze.
$openssl req -new -key /tmp/postgresql.key -out /tmp/postgresql.csr
$openssl x509 -req -in server.req -out /tmp/postgresql.csr -CA root.crt -CAkey server.key -out /tmp/postgresql.crt -CAcreateserial
Zkopírujte tři soubory vytvořené v adresáři /tmp serveru do klientského počítače. Zkopírujte root.crt z adresáře serveru /tmp do ~/.postgresql/ klienta adresář.
Doufejme, že vám tento článek pomůže povolit SSL v PostgreSQL.