Es posible que desee verificar si el cliente lento realiza el cifrado SSL o no. Ocurre de manera predeterminada cuando está configurado en el servidor y el cliente ha sido compilado con soporte SSL.
Para consultas que recuperan grandes cantidades de datos, la diferencia de tiempo es significativa. Además, algunas distribuciones de Linux como Debian/Ubuntu tienen SSL activado de forma predeterminada, incluso para conexiones TCP a través de localhost.
Como ejemplo, aquí está la diferencia de tiempo para una consulta que recupera 1,5M de filas con un peso total de 64Mbytes, con un caché tibio.
Sin cifrado:
$ psql "host=localhost dbname=mlists sslmode=disable" Password: psql (9.1.7, server 9.1.9) Type "help" for help. mlists=> \timing Timing is on. mlists=> \o /dev/null mlists=> select subject from mail; Time: 1672.258 ms
Con cifrado:
$ psql "host=localhost dbname=mlists" Password: psql (9.1.7, server 9.1.9) SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) Type "help" for help. mlists=> \o /dev/null mlists=> \timing Timing is on. mlists=> select subject from mail; Time: 7017.935 ms
Para desactivarlo globalmente, se podría configurar SSL=off
en postgresql.conf
.
Para desactivarlo para rangos específicos de direcciones de clientes, agregue entradas en pg_hba.conf
con hostnossl
en el primer campo antes del host
más genérico entradas.
Para desactivarlo del lado del cliente, depende de cómo el controlador expone el sslmode
parámetro de conexión. Si no es así, el PGSSLMODE
la variable de entorno se puede usar si el controlador se implementa sobre libpq
.
En cuanto a las conexiones a través de sockets de dominio Unix (local
), SSL nunca se usa con ellos.