Parameter · Connections and Authentication / SSL
ssl_tls13_ciphers
Sets the list of allowed TLSv1.3 cipher suites. An empty string means use the default cipher suites.
- Default:
'' (empty) - Type: string
- Applies: Reload
In plain words
New in PostgreSQL 18: the list of cipher suites allowed for TLS 1.3 connections. Empty (the default) uses OpenSSL's default TLS 1.3 suites, which are fine for almost everyone.
For DBAs and operators
TLS 1.3 has a short, separate list of suites (TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256, …) that OpenSSL configures differently from the TLS 1.2 list, which is why PostgreSQL 18 split it out from ssl_ciphers. Value: colon-separated suite names, e.g.
ssl_tls13_ciphers = 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256'
Typical reason to set it: a compliance rule that forbids AES-128, or FIPS environments. An unknown name makes the SSL context fail to load at reload/startup. Sessions show the negotiated suite in pg_stat_ssl.cipher and version = 'TLSv1.3'. Before PostgreSQL 18 there was no way to restrict TLS 1.3 suites from PostgreSQL.
How to change it
Change in postgresql.conf or ALTER SYSTEM, then run SELECT pg_reload_conf().