diff options
author | Igor Sysoev <igor@sysoev.ru> | 2008-03-10 14:47:07 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2008-03-10 14:47:07 +0000 |
commit | 472233d0a349c4658f7339e3e94455230bd0e1f1 (patch) | |
tree | 40d636235ac57ca719cade5226d993827848d955 /src/http/ngx_http_request.c | |
parent | fb14092fdc9281b96dd6cd9715c834e07618d9c2 (diff) | |
download | nginx-472233d0a349c4658f7339e3e94455230bd0e1f1.tar.gz nginx-472233d0a349c4658f7339e3e94455230bd0e1f1.zip |
invalidate SSL session if there is no valid client certificate
Diffstat (limited to 'src/http/ngx_http_request.c')
-rw-r--r-- | src/http/ngx_http_request.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c index 8c72659d3..d87f77d54 100644 --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -1430,6 +1430,10 @@ ngx_http_process_request(ngx_http_request_t *r) ngx_log_error(NGX_LOG_INFO, c->log, 0, "client SSL certificate verify error: (%l:%s)", rc, X509_verify_cert_error_string(rc)); + + ngx_ssl_remove_cached_session(sscf->ssl.ctx, + (SSL_get0_session(c->ssl->connection))); + ngx_http_finalize_request(r, NGX_HTTPS_CERT_ERROR); return; } @@ -1439,6 +1443,10 @@ ngx_http_process_request(ngx_http_request_t *r) { ngx_log_error(NGX_LOG_INFO, c->log, 0, "client sent no required SSL certificate"); + + ngx_ssl_remove_cached_session(sscf->ssl.ctx, + (SSL_get0_session(c->ssl->connection))); + ngx_http_finalize_request(r, NGX_HTTPS_NO_CERT); return; } |