PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak włączyć SSL w PostgreSQL

PostgreSQL obsługuje połączenie SSL, które pozwala użytkownikom bezpiecznie łączyć się z ich bazami danych. W tym artykule przyjrzymy się, jak włączyć SSL w bazie danych PostgreSQL.


Jak włączyć SSL w PostgreSQL

Oto kroki, aby włączyć połączenie SSL w PostgreSQL. Na serwerze PostgreSQL potrzebujemy 3 certyfikatów w katalogu danych do konfiguracji SSL. Są to:

  • root.crt (zaufany certyfikat główny)
  • server.crt (certyfikat serwera)
  • klucz.serwera (klucz prywatny)

Otwórz terminal i uruchom następujące polecenie, aby uruchomić jako root

$ sudo -
$ cd /var/lib/pgsql/data

Wygeneruj klucz prywatny za pomocą openssl. Zostaniesz poproszony o podanie hasła.

$ openssl genrsa -des3 -out server.key 1024

Usuń hasło

$ openssl rsa -in server.key -out server.key

Przeczytaj bonus:Najlepsze blogi dotyczące baz danych do obserwowania

Zaktualizuj uprawnienia do pliku i własność pliku klucza prywatnego.

$ chmod 400 server.key
$ chown postgres.postgres server.key

Podobnie utwórz certyfikat serwera

$ openssl req -new -key server.key -days 3650 -out server.crt -x509

W powyższym oświadczeniu -x509 wskazuje na certyfikat z podpisem własnym. Zostaniesz poproszony o podanie szczegółów, takich jak adres e-mail, kraj itp. Wprowadź go i zakończ generowanie certyfikatu.

Ponieważ używamy certyfikatu z podpisem własnym, użyjemy naszego klucza serwera jako certyfikatu głównego.

$ cp server.crt root.crt

Zaktualizuj pg_hba.conf, aby dodać następujące wiersze

# 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

Edytuj postgresql.conf, aby dodać następujący wiersz

ssl = on

Zrestartuj serwer PostgreSQL

$ /etc/init.d/postgresql restart

Przeczytaj bonus:Jak zwiększyć maksymalną liczbę połączeń w PostgreSQL

Włącz SSL w kliencie PostgreSQL

Potrzebujemy również 3 plików do włączenia SSL w kliencie PostgreSQL. Będziemy je przechowywać w ~/.postgresql/ katalog

  • root.crt (zaufany certyfikat główny)
  • postgresql.crt (certyfikat klienta)
  • postgresql.key (klucz prywatny)

Utwórz postgresql.key na komputerze klienta i usuń hasło.

$ openssl genrsa -des3 -out /tmp/postgresql.key 1024
$ openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key

Przeczytaj bonus:Wskazówki dotyczące dostrajania wydajności PostgreSQL

Następnie tworzymy postgresql.crt i podpisujemy go za pomocą zaufanego roota (pliku klucza prywatnego z serwera). Uwaga , gdy zostaniesz poproszony o podanie nazwy pospolitej certyfikatu (CN), ustaw ją na nazwę bazy danych.

$ 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

Skopiuj trzy pliki utworzone w katalogu /tmp serwera na komputer klienta. Skopiuj root.crt z katalogu serwera /tmp do katalogu klienta ~/.postgresql/ katalog.

Mamy nadzieję, że ten artykuł pomoże ci włączyć SSL w PostgreSQL.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Radzenie sobie z powolnymi zapytaniami w PostgreSQL

  2. Łączenie z Heroku Postgres z Spring Boot

  3. Jak mogę uzyskać zrzut bazy danych postgres w postaci zwykłego tekstu na heroku?

  4. PostgreSQL JDBC Null String wzięty jako bajt

  5. Ograniczenie zdefiniowane ODROCZONY POCZĄTKOWO NATYCHMIAST jest nadal ODROCZONY?