sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo habilitar SSL en PostgreSQL

PostgreSQL admite la conexión SSL que permite a los usuarios conectarse de forma segura a sus bases de datos. En este artículo veremos cómo habilitar SSL en la base de datos PostgreSQL.


Cómo habilitar SSL en PostgreSQL

Estos son los pasos para habilitar la conexión SSL en PostgreSQL. En el servidor PostgreSQL, necesitamos 3 certificados en el directorio de datos para la configuración de SSL. Ellos son:

  • raíz.crt (certificado raíz de confianza)
  • servidor.crt (certificado de servidor)
  • servidor.clave (clave privada)

Abra la terminal y ejecute el siguiente comando para ejecutar como root

$ sudo -
$ cd /var/lib/pgsql/data

Generar clave privada usando openssl. Se le pedirá una frase de contraseña.

$ openssl genrsa -des3 -out server.key 1024

Eliminar frase de contraseña

$ openssl rsa -in server.key -out server.key

Lectura adicional:Principales blogs de bases de datos a seguir

Actualice el permiso de archivo y la propiedad del archivo de clave privada.

$ chmod 400 server.key
$ chown postgres.postgres server.key

Del mismo modo, cree un certificado de servidor

$ openssl req -new -key server.key -days 3650 -out server.crt -x509

En la declaración anterior, -x509 indica un certificado autofirmado. Se le solicitarán detalles como correo electrónico, país, etc. Introdúzcalos y complete la generación del certificado.

Como estamos usando un certificado autofirmado, usaremos nuestra clave de servidor como certificado raíz.

$ cp server.crt root.crt

Actualice pg_hba.conf para agregar las siguientes líneas

# IPv4 remote connections for authenticated users 
hostssl all www-data 0.0.0.0/0 md5 clientcert=1
hostssl all postgres 0.0.0.0/0 md5 clientcert=1

Edite postgresql.conf para agregar la siguiente línea

ssl = on

Reinicie el servidor PostgreSQL

$ /etc/init.d/postgresql restart

Lectura adicional:Cómo aumentar las conexiones máximas en PostgreSQL

Habilitar SSL en el cliente PostgreSQL

También necesitamos 3 archivos para habilitar SSL en el cliente PostgreSQL. Los almacenaremos en ~/.postgresql/ directorio

  • raíz.crt (certificado raíz de confianza)
  • postgresql.crt (certificado de cliente)
  • postgresql.clave (clave privada)

Crear postgresql.key en la máquina del cliente y elimine la frase de contraseña.

$ openssl genrsa -des3 -out /tmp/postgresql.key 1024
$ openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key

Lectura adicional:Sugerencias para ajustar el rendimiento de PostgreSQL

A continuación, creamos postgresql.crt y lo firmamos con la raíz de confianza (archivo de clave privada del servidor). Tenga en cuenta , cuando se le solicite el nombre común del certificado (CN), configúrelo en el nombre de la base de datos.

$ openssl req -new -key /tmp/postgresql.key -out /tmp/postgresql.csr
$ openssl x509 -req -in server.req -out /tmp/postgresql.csr -CA root.crt -CAkey server.key -out /tmp/postgresql.crt -CAcreateserial

Copie los tres archivos creados en el directorio /tmp del servidor a la máquina cliente. Copie root.crt del directorio /tmp del servidor al ~/.postgresql/ del cliente directorio.

Con suerte, este artículo lo ayudará a habilitar SSL en PostgreSQL.