Este documento describe como establecer conexiones ssl con postgresql, incluso conexiones desde php, es válido para Debian Sarge de los repositorios oficiales :

 php4-pgsql          4.3.10-4
 postgresql          7.4.7-6sarge1
 postgresql-client   7.4.7-6sarge1
 libapache-mod-php4  4.3.10-16
 libssl0.9.7         0.9.7e-3
 openssl             0.9.7e-3

Generación del certificado

Conexión TCP/IP sobre SSL para postgresql tomado de /usr/share/doc/postgresql/html/ssl-tcp.html Se requiere server.key y server.crt en /var/lib/postgres/data, para generarlos, haga línea por línea los procesos, porque en ciertos momentos se pedirá la passphrase :

 mkdirhier /tmp/postgresql/ca
 cd /tmp/postgresql/ca
 openssl req -new -text -out server.req
 #Responder a las preguntas, colocando una passphrase mayor a cuatro caracteres.
 #El password puede omitirse
 openssl rsa -in privkey.pem -out server.key
 rm privkey.pem
 #Esto anterior para evitar que se pregunte la passphrase al reiniciar postgresql
 openssl req -x509 -in server.req -text -key server.key -out server.crt
 #Esto hace que sea un certificado autofirmado.
 cp server.key server.crt /var/lib/postgres/data
 cd /var/lib/postgres/data
 ln -s server.crt root.crt
 chmod og-rwx server.key server.crt root.crt
 chown postgres: server.key server.crt root.crt
 #Para que postgresql no se queje por los permisos de los certificados y arranque correctamente
 rm -rf /tmp/postgresql/ca

Configuración de postgresql

Una vez que están generados los certificados, es necesario modificar la variable de soporte para ssl en /etc/postgresql/postgresql.conf , para que tenga valor true

/usr/share/doc/postgresql/html/runtime-config.html
 ssl=true

Modificar las bases de datos que requieran soporte ssl desde otros sitios, por ejemplo, para localhost todos los usuarios estarían autenticados con md5, es importante especificar hostssl, en realidad esto es más útil cuando se especifica por otras ips /usr/share/doc/postgresql/html/client-authentication.html, el archivo de autenticación de bases de datos /etc/postgresql/pg_hba.conf:

Se detiene postgresql y se vuelve a iniciar

Pruebas

Cuando se intente una conexión a una base de datos desde un cliente especificado a través de psql se debería obtener un mensaje como :

CategoriaDebian CategoriaPostgresql CategoriaSsl

PostgresqlSsl (última edición 2009-07-15 15:25:43 efectuada por localhost)