Welcome! Log In Create A New Profile

Advanced

Re: [crit] SSL_read_early_data() failed

Sergey Kandaurov
February 22, 2020 10:14AM
> On 21 Feb 2020, at 22:19, mikhal123 <nginx-forum@forum.nginx.org> wrote:
>
> Включил на своём сервере опцию "ssl_early_data". Всё вроде бы хорошо, но в
> error.log довольно много (порядка 0.5% от общего числа запросов, что на
> трафике в миллион уже немного напрягает) записей вида:
> [crit] 11016#11016: *46796 SSL_read_early_data() failed (SSL:
> error:1423D06E:SSL routines:tls_parse_ctos_server_name:bad extension) while
> SSL handshaking, client: <ip_адрес_клиента>, server: 0.0.0.0:443
>

Было бы интересно посмотреть, что конкретно там прилетает.

> В связи с этим хотелось бы узнать:
> 1. Правильно ли я понимаю, что это проблемы со стороны клиентов (слишком
> старые клиенты?), и на сервере невозможно что-либо поделать для исправления
> этой ситуации?

Верно. Так происходит, например, если получен испорченный SNI:
плохой тип и/или длина значения, нулевые байты в значении, плохой формат.

> 2. Если так, то с какой целью данное извещение выводится с таким высоким
> уровнем приоритета (crit)

Так происходит по умолчанию, чтобы не пропустить ничего важного.

> 3. Можно ли как-то отключить вывод данного извещения (например, понизив его
> приоритет до warn) в логи для приведения их в прежний благопристойный вид?
>

Можно попробовать патч, понижающий уровень:

# HG changeset patch
# User Sergey Kandaurov <pluknet@nginx.com>
# Date 1582383432 -10800
# Sat Feb 22 17:57:12 2020 +0300
# Node ID ffb1eaf3bd88886233d941e531d68785671ae457
# Parent 72b792bb3885727bf381d4c4e66cfaf754ac7a59
SSL: logging level of "bad extension".

The "bad extension" errors are reported by OpenSSL 1.1.1
if an invalid servername extension value is received.

diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
--- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c
@@ -2896,6 +2896,9 @@ ngx_ssl_connection_error(ngx_connection_
#ifdef SSL_R_NO_SUITABLE_KEY_SHARE
|| n == SSL_R_NO_SUITABLE_KEY_SHARE /* 101 */
#endif
+#ifdef SSL_R_BAD_EXTENSION
+ || n == SSL_R_BAD_EXTENSION /* 110 */
+#endif
#ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM
|| n == SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM /* 118 */
#endif

Или конкретно для SNI:

diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
--- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c
@@ -2896,6 +2896,11 @@ ngx_ssl_connection_error(ngx_connection_
#ifdef SSL_R_NO_SUITABLE_KEY_SHARE
|| n == SSL_R_NO_SUITABLE_KEY_SHARE /* 101 */
#endif
+#ifdef SSL_R_BAD_EXTENSION
+ || (n == SSL_R_BAD_EXTENSION /* 100 */
+ && ERR_GET_FUNC(ERR_peek_error())
+ == SSL_F_TLS_PARSE_CTOS_SERVER_NAME)
+#endif
#ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM
|| n == SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM /* 118 */
#endif

--
Sergey Kandaurov

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

[crit] SSL_read_early_data() failed

mikhal123 February 21, 2020 02:19PM

Re: [crit] SSL_read_early_data() failed

Sergey Kandaurov February 22, 2020 10:14AM

Re: [crit] SSL_read_early_data() failed

mikhal123 February 23, 2020 01:07PM

Re: [crit] SSL_read_early_data() failed

Aleksandr Sytar February 25, 2020 02:14AM

Re: [crit] SSL_read_early_data() failed

mikhal123 February 25, 2020 12:33PM

Re: [crit] SSL_read_early_data() failed

mikhal123 March 05, 2020 02:15PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 307
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready