]> git.kaiwu.me - nginx.git/commit
SSL: made it possible to iterate though all certificates.
authorMaxim Dounin <mdounin@mdounin.ru>
Thu, 19 May 2016 11:46:32 +0000 (14:46 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Thu, 19 May 2016 11:46:32 +0000 (14:46 +0300)
commite844475905c0226088104a80bc3159bfa714ffa8
treef6e7df682b6f06f59a2688b1ad3ab5c3fa42224c
parent503b3569b9a6fd4960407a157feeb8ed534195ea
SSL: made it possible to iterate though all certificates.

A pointer to a previously configured certificate now stored in a certificate.
This makes it possible to iterate though all certificates configured in
the SSL context.  This is now used to configure OCSP stapling for all
certificates, and in ngx_ssl_session_id_context().

As SSL_CTX_use_certificate() frees previously loaded certificate of the same
type, and we have no way to find out if it's the case, X509_free() calls
are now posponed till ngx_ssl_cleanup_ctx().

Note that in OpenSSL 1.0.2+ this can be done without storing things in exdata
using the SSL_CTX_set_current_cert() and SSL_CTX_get0_certificate() functions.
These are not yet available in all supported versions though, so it's easier
to continue to use exdata for now.
src/event/ngx_event_openssl.c
src/event/ngx_event_openssl.h
src/event/ngx_event_openssl_stapling.c