DB Internals AtlasPostgreSQL 18.6 Home About

Parameter · Connections and Authentication / SSL

ssl_min_protocol_version

Sets the minimum SSL/TLS protocol version to use.

  • Default: TLSv1.2
  • Type: enum
  • Values: TLSv1 · TLSv1.1 · TLSv1.2 · TLSv1.3
  • Applies: Reload

In plain words

The oldest TLS protocol version the server accepts. The default TLSv1.2 rejects the outdated TLS 1.0 and 1.1. Raising it to TLSv1.3 is a common hardening step if all clients support it.

For DBAs and operators

SSLv2/SSLv3 are never allowed. The default has been TLSv1.2 since PostgreSQL 13 (it was TLSv1 before). OpenSSL builds that lack a version raise an error when it is chosen. With OpenSSL 3.x, lowering the minimum below TLSv1.2 is not enough on its own: OpenSSL's default security level still refuses TLS 1.0/1.1 unless ssl_ciphers also contains @SECLEVEL=0 (tested with OpenSSL 3.0). A client that only speaks an older version fails with a server log entry like could not accept SSL connection: unsupported protocol; on the client side libpq has the matching ssl_min_protocol_version connection option.

Old JDBC drivers on Java 7, legacy ODBC and some appliances may only do TLS 1.0/1.1; check pg_stat_ssl.version across sessions before raising the minimum:

SELECT version, count(*) FROM pg_stat_ssl WHERE ssl GROUP BY 1;

Reload is enough; existing sessions are not affected.

How to change it

Change in postgresql.conf or ALTER SYSTEM, then run SELECT pg_reload_conf().

See it in context

SSL/TLS encryption

Related parameters

ssl_max_protocol_version ssl_ciphers ssl_tls13_ciphers

All Connections and Authentication parameters