Możesz sprawdzić, czy powolny klient szyfruje SSL, czy nie. Dzieje się tak domyślnie, gdy jest skonfigurowany na serwerze, a klient został skompilowany z obsługą SSL.
W przypadku zapytań, które pobierają duże ilości danych, różnica czasu jest znacząca. Również niektóre dystrybucje Linuksa, takie jak Debian/Ubuntu, mają domyślnie włączone SSL, nawet dla połączeń TCP przez localhost.
Jako przykład, oto różnica czasu dla zapytania pobierającego 1,5 miliona wierszy o łącznej wadze 64 MB, z ciepłą pamięcią podręczną.
Bez szyfrowania:
$ 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
Z szyfrowaniem:
$ 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
Aby wyłączyć go globalnie, można ustawić SSL=off
w postgresql.conf
.
Aby wyłączyć to dla określonych zakresów adresów klientów, dodaj wpisy w pg_hba.conf
z hostnossl
w pierwszym polu przed bardziej ogólnym host
wpisy.
Aby wyłączyć, jeśli jest wyłączone po stronie klienta, zależy to od tego, jak sterownik udostępnia sslmode
parametr połączenia. Jeśli nie, PGSSLMODE
zmienna środowiskowa może być użyta, jeśli sterownik jest zaimplementowany na libpq
.
Jeśli chodzi o połączenia przez gniazda domeny Unix (local
), SSL nigdy nie jest z nimi używany.