Set SNI ClientHello extension to localhost in tests
authorDaniel Gustafsson <dgustafsson@postgresql.org>
Thu, 10 Feb 2022 13:23:36 +0000 (14:23 +0100)
committerDaniel Gustafsson <dgustafsson@postgresql.org>
Thu, 10 Feb 2022 13:23:36 +0000 (14:23 +0100)
commit6d503d2a47324c15c5b4274bf4dd016064143754
tree76f300eac5b53bdfe828b6e5138d7d37f597f62c
parent4c5c41b4d985c39a0aba5b637f61216206f18d33
Set SNI ClientHello extension to localhost in tests

The connection strings in the SSL client tests were using the host
set up from Cluster.pm which is a temporary pathname. When SNI is
enabled we pass the host to OpenSSL in order to set the server name
indication ClientHello extension via SSL_set_tlsext_host_name.

OpenSSL doesn't validate the hostname apart from checking the max
length, but LibreSSL checks for RFC 5890 conformance which results
in errors during testing as the pathname from Cluster.pm is not a
valid hostname.

Fix by setting the host explicitly to localhost, as that's closer
to the intent of the test.

Backpatch through 14 where SNI support came in.

Reported-by: Nazir Bilal Yavuz <byavuz81@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/17391-304f81bcf724b58b@postgresql.org
Backpatch-through: 14
src/test/ssl/t/001_ssltests.pl
src/test/ssl/t/002_scram.pl
src/test/ssl/t/003_sslinfo.pl