Seite 1 von 1

SSL Einrichten

Verfasst: Mo 8. Okt 2018, 11:10
von Frank
Hallo,
nachdem ich seit einem Tag versuche eine SSL Verbindung erfolglos einzurichten suche ich hier mal nach Hilfe.

Ich habe einen PG 10.5 Server in einer Windows VM laufen und OpenSSL installiert. Dann mit den gefundenen Anleitungen (hauptsächlich aus dem PG Handbuch):

openssl req -new -x509 -days 365 -nodes -text -out server.crt -keyout server.key -subj "/CN=www.mytest.com"
openssl req -new -nodes -text -out root.csr -keyout root.key -subj "/CN=www.mytest.com"
openssl x509 -req -in root.csr -text -days 3650 -extfile C:\Programme\OpenSSL-Win64\bin\cnf\openssl.cnf -extensions v3_ca -signkey root.key -out root.crt
openssl req -new -nodes -text -out server.csr -keyout server.key -subj "/CN=www.mytest.com"
openssl x509 -req -in server.csr -text -days 365 -CA root.crt -CAkey root.key -CAcreateserial -out server.crt

die server.key, server.crt, root.key und root.crt erstellen können.

Die pg_hba.conf:
hostssl all all 0.0.0.0/0 trust
und postgresql.conf mit
ssl=on versehen.

Ich denke das noch eine client.crt oder client.key erstellt werden muss.
Wird die auf dem Server erstellt, und dann an den Client weitergegeben mit der root.crt?
Muss OpelSSL auf den Client´s installiert werden?
Finde leider keine Anleitung die mir Licht ins dunkel bringt :-(

Grüße Frank

Re: SSL Einrichten

Verfasst: Mo 8. Okt 2018, 11:16
von akretschmer
Frank hat geschrieben:
Mo 8. Okt 2018, 11:10

Finde leider keine Anleitung die mir Licht ins dunkel bringt :-(

Grüße Frank

Re: SSL Einrichten

Verfasst: Mo 8. Okt 2018, 11:29
von Frank
Hallo,
ok danke. Die hatte ich schon versucht umzusetzen.

Re: SSL Einrichten

Verfasst: Mo 8. Okt 2018, 14:11
von Frank
Hallo,
ich meine alles wie in der ersten Beschreibung ausgeführt zu haben. Allerdings bekomme ich beim Aufruf:
openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj "/C=CA/........"
die Meldung:
Can't load ./.rnd into RNG
16132:error:2406F079:random number generator:RAND_load_file:Cannot open file:crypto\rand\randfile.c:88:Filename=./.rnd
Muss zu openSSL noch was nachinstalliert werden? Die .key und .crt werden erstellt, aber ich weiß nicht ob durch die Fehlermeldung die Dateien gültig sind.
Vielleicht noch ein Hinweis?
Grüße Frank

Re: SSL Einrichten

Verfasst: Mo 8. Okt 2018, 14:20
von akretschmer
Windows?

Du kannst doch die Schlüssel auch auf einem richtigen OS erstellen...

Re: SSL Einrichten

Verfasst: Mo 8. Okt 2018, 17:20
von Frank
Ja Windows,
da sollte es ja auch klappen mit OpenSSL, oder setzt das niemand ein :-)

Re: SSL Einrichten

Verfasst: Di 9. Okt 2018, 07:57
von Gisman
Windows dürfte hier in der Minderzahl sein ;)

Re: SSL Einrichten

Verfasst: Fr 14. Dez 2018, 07:29
von Dravion
Du brauchst kein Client Cert.
Du kannst das alles in der postgesql.conf festlegen und in der hba angeben für wen das gelten soll.
Auf jeden fall macht es Sinn, die SSL-Verschlüsselung durch den Server zu erzwingen, damit sich niemand unencrypted anmelden kann.
TLS 1.2 wird ebenfalls unterstützt, TLS 1.3 wird zwar von OpenSSL 1.1.x unterstützt, weiß aber gerade nicht ob Postgres 11 da schon
./configure switches für hat.

Re: SSL Einrichten

Verfasst: Fr 14. Dez 2018, 17:43
von Dravion
Wenn alles läuft und Du deine LOG Einstellungen auch Connections loggen lässt, sollte es ungefähr so aussehen. Dann siehst Du auch das die Verbindungen via TLS reinkommen, welche Protokollversion und welche Cypher genutzt werden:

2018-12-14 17:32:25.138 CET [6708] LOG: database system was shut down at 2018-12-14 17:32:17 CET
2018-12-14 17:32:25.340 CET [3416] LOG: database system is ready to accept connections
2018-12-14 17:38:09.336 CET [6176] LOG: connection received: host=127.0.0.1 port=5922
2018-12-14 17:38:12.261 CET [7560] LOG: connection received: host=127.0.0.1 port=5924
2018-12-14 17:38:12.285 CET [7560] LOG: connection authorized: user=hmsusr database=hmailserver SSL enabled (protocol=TLSv1.2, cipher=ECDHE-RSA-AES256-GCM-SHA384, compression=off)