SuperX

KontaktMail für InfosSuchenLogin

Postgres mit SSL Support

Wenn die Postgres Binaries mit SSL Support erzeugt wurden, kann man den SSL Support leicht aktivieren:

  • Erzeugen Sie ein öffentliches und ein privates Zertifikat
  • in der Datei postgresql.conf den Schalter ssl = on setzen
  • Das öffentliche Server Zertifikat nach $PGDATA/server.crt kopieren
  • Das private Zertifikat nach $PGDATA/server.key kopieren.

Wenn Sie die Zertifikate wie unten in der Anleitung erzeugt haben lauten die Befehle z.B.:

cp /root/demoCA/cacert.pem /usr/local/pgsql/data/server.crt
cp /root/demoCA/private/cakey.pem /usr/local/pgsql/data/server.key

Achten Sie beim Kopieren darauf, dass die Dateirechte nur dem Eigentümer Leserecht geben.

Beim Serverstart wird ggf. ein PEM Passwort abgefragt.

Um den Zugriff zum Server per SSL zu steuern, können Sie in der Datei pg_hba.conf statt der Direktive "host" den Namen "hostssl" nutzen. Damit werden SSL Verbindungen erlaubt. Umgekehrt werden keine non-SSL Verbindungen erlaubt, wenn es keine "host" Direktive gibt.

In psql können Sie den Zugang testen, allerdings müssen Sie die Umgebungsvariable

PGSSLMODE=require

setzen und in der SQL_ENV speichern. Im Erfolgsfall bekommen Sie die Meldung:

psql (XXX)
SSL-Verbindung (Verschlüsselungsmethode: DHE-RSA-AES256-SHA, Bits: 256)

Geben Sie »help« für Hilfe ein.
superx=#

Damit die JDBC Klassen und die Shellscripte mit SSL verbinden, muss man das Zertifikat in der Java Runtime bekannt machen in der Datei webapps/superx/WEB-INF/db.properties den Parameter:

ssl=true

hinzufügen. Mit DOQUERY "select * from xdummy" kann man den Zugriff testen.