DB Internals AtlasPostgreSQL 18.6 Home About

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().

See it in context

SSL/TLS encryption

Related parameters

ssl_ciphers ssl_min_protocol_version ssl_groups

All Connections and Authentication parameters