pg.ddx.io  pgsql-bugs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Markus KARG <markus@headcrashing.eu>
To: pgsql-bugs@lists.postgresql.org
Subject: psql v16.3 successfully connects via TLSv1.3 proxy, but psql v16.4 says "tlsv1 alert no application protocol"
Date: Wed, 25 Dec 2024 18:05:29 +0100
Message-ID: <68ff85d7-9b41-40ec-bddf-0ca74fe09875@headcrashing.eu> (raw)

Summary: The TLS behavior of psql changed between 16.3 and 16.4 as shown 
below. If this is a bug, I kindly ask to fix it. If this is intended 
behavior, I kindly as for a link with instructions how to work around 
the problem.


Server:

I am running the official PostgreSQL 17.2 Docker Container 
(https://hub.docker.com/layers/library/postgres/17.2/images/sha256-c063081175f45f4a3a5ac03c234e060e67...) 
proxied by a TLSv1.3 proxy (official Traefik 3.2.3 Docker Container 
https://hub.docker.com/layers/library/traefik/v3.2.3/images/sha256-06966a9ba1747ad724a490b8f27df1434...). 
Traefik utilizes ACME with Let's Encrypt to produce the TLS certificate.

I have neither reconfigured TLS in any other way, nor have I manually 
provided TLS certificates to neither client nor server.


Client:

Using the official PostgresSQL Docker Container (16.3 vs 16.4+), I am 
asking psql to connect to my server. While psql 16.3 and earlier 
versions successfully connect via the TLS proxy to the PostgreSQL 
server, psql 16.4 and later versions fail doing so:

root@hetzner-2:~# docker run -it postgres:16.3 psql "host=headcrashing.eu port=5432 
dbname=postgres user=postgres password=... sslmode=require"
psql (16.3 (Debian 16.3-1.pgdg120+1), server 17.2 (Debian 17.2-1.pgdg120+1))
WARNING: psql major version 16, server major version 17.
          Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_128_GCM_SHA256, compression: off)
Type"help" for help.

postgres=# \q
root@hetzner-2:~# docker run -it postgres:16.4 psql "host=headcrashing.eu port=5432 
dbname=postgres user=postgres password=... sslmode=require"
psql: error: connection to server at"headcrashing.eu" (49.13.53.107), port 5432 failed: SSL error: tlsv1 alert no application protocol


Public Test Environment

Feel free to connect to my personal PostgreSQL 17 instance running at 
|postgres.headcrashing.eu:5432| (TLS required).


With kind regards

-Markus

view thread (8+ messages)  latest in thread

Message-ID: <68ff85d7-9b41-40ec-bddf-0ca74fe09875@headcrashing.eu>
Permalink:  ../68ff85d7-9b41-40ec-bddf-0ca74fe09875@headcrashing.eu/
Also on:    postgresql.org/message-id/68ff85d7-9b41-40ec-bddf-0ca74fe09875@headcrashing.eu

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-bugs@postgresql.org
  Cc: markus@headcrashing.eu, pgsql-bugs@lists.postgresql.org
  Subject: Re: psql v16.3 successfully connects via TLSv1.3 proxy, but psql v16.4 says "tlsv1 alert no application protocol"
  In-Reply-To: <68ff85d7-9b41-40ec-bddf-0ca74fe09875@headcrashing.eu>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox