PostgreSQL trae inmerso por defecto el soporte nativo para encriptar el transporte de la información utilizando SSL. A continuación se describe el procedimiento necesario para activarlo en un servidor FreeBSD.
Activa el uso de SSL para las conexiones del motor de bases de datos.
# vi /usr/local/pgsql/data/postgresql.conf
ssl = on
Detiene el servicio del motor de bases de datos.
# /usr/local/etc/rc.d/postgresql stop
Crea el certificado SSL.
# cd /usr/local/pgsql/data/
En este paso se deben tener en cuenta dos aspectos. El primero de ellos es la clave PEM que se utilizará mas adelante y el segundo es que el Common Name deberá corresponder con nombre FQDN del servidor.
# openssl req -new -text -out server.req
Enter PEM pass phrase: MiClavePEM Verifying - Enter PEM pass phrase: MiClavePEM
Country Name (2 letter code) [AU]: CO State or Province Name (full name) [Some-State]: Caldas Locality Name (eg, city) []: Manizales Organization Name (eg, company) [Internet Widgits Pty Ltd]: Personal Development Organizational Unit Name (eg, section) []: Educacion Common Name (eg, YOUR name) []: webserver.mydomain.com Email Address []:jimezam@gmail.com
A challenge password []: Certificado&2008k An optional company name []: Smiley World
# openssl rsa -in privkey.pem -out server.key
Enter pass phrase for privkey.pem: MiClavePEM
# rm privkey.pem
Se crean la llave privada y el certificado del servidor.
# openssl req -x509 -in server.req -text -key server.key -out server.crt
# chmod og-rwx server.key
# chown pgsql:pgsql server.*
Se reinicia el servidor para comprobar los cambios realizados.
# reboot
Por defecto las conexiones locales (con 127.0.0.1) se realizan sin encriptación. Siguiendo los pasos dispuestos a continuación es posible modificar este comportamiento y obligar a que este tráfico se encripte.
# vi /usr/local/pgsql/data/pg_hba.conf
local all all trust hostssl all all 127.0.0.1/32 trust hostssl all all ::1/128 trust
Enlaces:
2 Replies to “Soporte SSL para las conexiones de PostgreSQL 8.2 en FreeBSD 7”