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)
commit5f00ef065ec8f086efeec93083fe250f81a3f585
treed0ee445af5374d9cbaa4db22dfc0efcfb9a25946
parent1a83297d222487070386b55b032657345d7ec64a
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