diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c index 98cc8c7..0810526 100644 --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -849,7 +849,7 @@ ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg) servername = SSL_get_servername(ssl_conn, TLSEXT_NAMETYPE_host_name); if (servername == NULL) { - return SSL_TLSEXT_ERR_NOACK; + return SSL_TLSEXT_ERR_ALERT_FATAL; } c = ngx_ssl_get_connection(ssl_conn); @@ -864,7 +864,7 @@ ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg) host.len = ngx_strlen(servername); if (host.len == 0) { - return SSL_TLSEXT_ERR_NOACK; + return SSL_TLSEXT_ERR_ALERT_FATAL; } host.data = (u_char *) servername; @@ -879,7 +879,7 @@ ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg) NULL, &cscf) != NGX_OK) { - return SSL_TLSEXT_ERR_NOACK; + return SSL_TLSEXT_ERR_ALERT_FATAL; } hc->ssl_servername = ngx_palloc(c->pool, sizeof(ngx_str_t)); diff --git a/lib/openssl/ssl/statem/extensions.c b/lib/openssl/ssl/statem/extensions.c index 8422161dc1..675446e59f 100644 --- a/lib/openssl/ssl/statem/extensions.c +++ b/lib/openssl/ssl/statem/extensions.c @@ -998,7 +998,9 @@ static int final_server_name(SSL *s, unsigned int context, int sent) switch (ret) { case SSL_TLSEXT_ERR_ALERT_FATAL: - SSLfatal(s, altmp, SSL_F_FINAL_SERVER_NAME, SSL_R_CALLBACK_FAILED); + s->statem.in_init = 1; + s->statem.state = MSG_FLOW_ERROR; + ssl3_send_alert(s, SSL3_AL_FATAL, altmp); return 0; case SSL_TLSEXT_ERR_ALERT_WARNING: