TLS 1.3 (RFC 9846, § 2) требует одного цикла обмена (round trip): клиент отправляет ClientHello со списком поддерживаемых версий, наборов шифров, групп, key share и алгоритмов подписи; сервер отвечает ServerHello (со своим key share), а затем, уже в зашифрованном виде, EncryptedExtensions, Certificate, CertificateVerify (подпись над хешем транскрипта) и Finished; клиент отвечает своим Finished и может отправлять данные. Если клиент не угадал группу, сообщение HelloRetryRequest обходится в лишний цикл обмена.
TLS 1.2 требует двух циклов обмена, передаёт сертификаты в открытом виде, а при передаче ключа с помощью RSA не подписывает ничего эфемерного. Возобновление сессии с предварительно согласованным ключом (PSK) обходится без аутентификации по сертификату, а 0-RTT позволяет клиенту сразу отправить ранние данные (early data), но ценой защиты от повторного воспроизведения.
Отладка: openssl s_client -connect host:443 -servername host -tls1_3 -msg выводит каждое сообщение; чаще всего причина сбоя — несовпадение имени, отсутствие промежуточных сертификатов, отсутствие общего шифра или группы либо промежуточные устройства (middleboxes), которые мешают прохождению больших сообщений ClientHello (это снова актуально с постквантовыми key share размером больше 1 КБ).