Hello!
On Mon, Jul 11, 2022 at 09:06:53PM +0300, Gena Makhomed wrote:
> On 10.07.2022 11:41, Maxim Dounin wrote:
>
> >> Как выловить такие ошибки в логе?
> >> я их не вижу, есть ошибки типа warn Но это не то.
>
> > Вы чуть раньше в этом треде писали Илье, "client sent plain HTTP
> > request to HTTPS port". Как и другие ошибки в клиентских
> > запросах, эти ошибки логгируются на уровне info.
>
> nginx/1.23.0 из официального репозитория nginx.org пишет в лог:
>
> 2022/07/11 13:14:48 [crit] 67688#67688: *154358 SSL_do_handshake()
> failed (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad
> key share) while SSL handshaking, client: 192.241.214.22, server:
> 0.0.0.0:443
>
> проблема тут https://stackoverflow.com/a/67424645 на стороне клиента,
> но в лог информация пишется на уровне [crit] - так и должно быть?
Нет, так не должно быть. Просто это относительно новая ошибка,
добавленная в OpenSSL 1.1.1 / TLSv1.3, и ей пока не прибит
правильный уровень логгирования. Патч ниже.
Если в логах вылезает что-то ещё - можно и нужно жаловаться.
# HG changeset patch
# User Maxim Dounin <mdounin@mdounin.ru>
# Date 1657587735 -10800
# Tue Jul 12 04:02:15 2022 +0300
# Node ID ae4b86fa92e6eb0c1fa13482695218b334f2adc3
# Parent 219217ea49a8d648f5cadd046f1b1294ef05693c
SSL: logging levels of various errors added in OpenSSL 1.1.1.
Starting with OpenSSL 1.1.1, various additional errors can be reported
by OpenSSL in case of client-related issues, most notably during TLSv1.3
handshakes. In particular, SSL_R_BAD_KEY_SHARE ("bad key share"),
SSL_R_BAD_EXTENSION ("bad extension"), SSL_R_BAD_CIPHER ("bad cipher"),
SSL_R_BAD_ECPOINT ("bad ecpoint"). These are now logged at the "info"
level.
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
@@ -3343,6 +3343,12 @@ 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_KEY_SHARE
+ || n == SSL_R_BAD_KEY_SHARE /* 108 */
+#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
@@ -3357,6 +3363,9 @@ ngx_ssl_connection_error(ngx_connection_
|| n == SSL_R_NO_CIPHERS_PASSED /* 182 */
#endif
|| n == SSL_R_NO_CIPHERS_SPECIFIED /* 183 */
+#ifdef SSL_R_BAD_CIPHER
+ || n == SSL_R_BAD_CIPHER /* 186 */
+#endif
|| n == SSL_R_NO_COMPRESSION_SPECIFIED /* 187 */
|| n == SSL_R_NO_SHARED_CIPHER /* 193 */
|| n == SSL_R_RECORD_LENGTH_MISMATCH /* 213 */
@@ -3391,6 +3400,9 @@ ngx_ssl_connection_error(ngx_connection_
#ifdef SSL_R_APPLICATION_DATA_ON_SHUTDOWN
|| n == SSL_R_APPLICATION_DATA_ON_SHUTDOWN /* 291 */
#endif
+#ifdef SSL_R_BAD_ECPOINT
+ || n == SSL_R_BAD_ECPOINT /* 306 */
+#endif
#ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG
|| n == SSL_R_RENEGOTIATE_EXT_TOO_LONG /* 335 */
|| n == SSL_R_RENEGOTIATION_ENCODING_ERR /* 336 */
--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list -- nginx-ru@nginx.org
To unsubscribe send an email to nginx-ru-leave@nginx.org