TLS handshake fails between OpenSSL 3.6.0 and GnuTLS
Description of problem:
TLS handshake fails when connecting to specific HTTPS servers after upgrading OpenSSL from 3.5.4 to 3.6.0.
It is definitely a problem caused by updating OpenSSL to 3.6.0 because if you roll back to 3.5.4, everything works again.
This was initially detected in WebKit applications, so there is a related bug in Bugzilla.
Version of gnutls used:
3.8.10
Distributor of gnutls (e.g., Ubuntu, Fedora, RHEL)
Arch Linux
How reproducible:
- Use Arch Linux (up to date as of October 2025).
- Ensure OpenSSL 3.6.0 is installed.
- Install and configure nginx with a simple self-signed TLS certificate.
- Launch any GnuTLS client such Epiphany, wget or aria2.
- Open https://localhost/.
Actual results:
Epiphany shows an SSL/TLS error 'Peer failed to perform TLS handshake: Error decoding the received TLS packet.'
In wget or aria2 similar error 'GnuTLS: Error decoding the received TLS packet'.
Expected results:
Everything should work fine, regardless of the version of OpenSSL installed.