Configuration parameter

ssl_max_protocol_version — PostgreSQL configuration parameter

Category Connections and Authentication Default to allow any version Change scope Sighup

Sets the maximum SSL/TLS protocol version to use.

At a glance

Property Value
Parameter ssl_max_protocol_version
Category Connections and Authentication
Default to
Value type enum
Change scope Reload (postgresql.conf, SIGHUP)
Available in PostgreSQL 12, 13, 14, 15, 16, 17, 18, 19 (added in 12)

What it does

Sets the maximum SSL/TLS protocol version to use. Valid values are as for ssl_min_protocol_version, with addition of an empty string, which allows any protocol version. The default is to allow any version. Setting the maximum protocol version is mainly useful for testing or if some component has issues working with a newer protocol.

This parameter can only be set in the postgresql.conf file or on the server command line.

(Description quoted from the official PostgreSQL documentation.)

How to apply a change

Set it in postgresql.conf (or with ALTER SYSTEM) and reload with SELECT pg_reload_conf(); or pg_ctl reload — no restart needed.

Inspect the current value and source with SHOW ssl_max_protocol_version; or SELECT name, setting, unit, context, source FROM pg_settings WHERE name = 'ssl_max_protocol_version';.

Tuning guidance

This is a connectivity or security setting, not a performance knob. Choose the value from your security and network requirements (TLS files, ciphers, keepalives, authentication behaviour) rather than for throughput, and verify it against your organization’s policy. Test changes in staging, because a wrong value here can lock clients out.

Reference

PostgreSQL documentation — ssl_max_protocol_version.

Keep going

Related & next steps

Concepts on this page

Was this helpful?

← All configuration parameters