Wie ermittelt man mit welchen Optionen postgres kompiliert wurde?
Ich versuche ssl anzubieten. Aus mir nicht ersichtlichen Gründe startet der
Server mit mehreren Konfigurationsvariationen nicht. Ob die openssl-Unterstützung
bei der Kompilation des db-servers berücksichtigt wurde, habe ich noch nicht
überprüft. Im log waren keine passenden Meldungen zu sehen.
Dunno, weiß nicht, ob das ersichtlich ist. Falls der Server läuft und Du mit psql angemeldet bist, kannst aber mit show ssl; nachschauen, ob SSL ‘drin’ und eingeschaltet ist.
Ich versuche ssl anzubieten. Aus mir nicht ersichtlichen Gründe startet der
Server mit mehreren Konfigurationsvariationen nicht. Ob die openssl-Unterstützung
Der Server startet nicht? Da sollten sich aber Hinweise auf die Ursache im Log finden lassen.
Es soll getestet werden ob der Datenbankserver mit aktivierter ssl-Option
überhaupt startet. (Die Zertifizierung gegenüber dem client oder der Aufbau
einer verschlüsselten Verbindung ist (noch) nicht im Fokus.)
Zunächst liest postgres wohl die systemweite openssl-Konfigurationsdatei. Auf
einem sles 11 wohl /etc/ssl/openssl.cnf: ($OPENSSL_CONF oder $SSLETC ist
bisher nicht gesetzt.)
postgres@srv:/db3/data $ openssl version -d
OPENSSLDIR: “/etc/ssl”
postgres@srv:/db3/data $ ls -l /etc/ssl/openssl.cnf
-rw-r–r-- 1 root root 9326 27. Aug 10:36 /etc/ssl/openssl.cnf
Beziehen sich die nun gesetzten Variablen auf den
postmaster/postgres-subprocess, da dieser die einkompilierte ssl-Bibliothek
ausführt?
(In der Datei openssl.cnf, befinden sich Zeilen wie
‘RANDFILE = $ENV::HOME/.rnd’ oder ‘HOME = .’.)
Lässt man die Variablen ENV_CA_DEFAULT und ENV_EXT undefiniert, so wird bei
einem Zertifizierungswunsch der Abschnitt [ req ] ausgeführt? Die Verwendung der
openssl-Bibliothek entspricht einem Aufruf ohne Komandozeilenparameter; diese
werden ja durch die Konfigurationsdatei übermittelt?
In der Konfigurationsdatei openssl.cnf wird im Abschnitt [ req ]
‘default_keyfile = privkey.pem’ nach ‘default_keyfile = server.key’ geändert.
Der Abschnitt [ req_distinguished_name ] wird an die lokalen Gegebenheiten
angepasst, wobei commonName den FQDN enthält.
Um den Server Start zu testen, wird gem. PostgreSQL: Documentation: Manuals: PostgreSQL 8.3: Secure TCP/IP Connections with SSL, Abschnitt ‘17.8.1. Creating a Self-Signed Certificate’ ein selbst signiertes Zeritfikat
erstellt. In der Konfigurationsdatei wurde der Name für das server Zertifikat
angepasst. Und siehe da, der Server startete. Das anschliessende ‘show ssl ;’
zeigte das gewünschte Ergebnis.