mirror of
https://github.com/apache/httpd.git
synced 2025-08-06 11:06:17 +00:00
Merge r1629372, r1629485, r1629519 from trunk:
Move OCSP stapling information from a per-certificate store (ex_data attached to an X509 *) to a per-server hash which is allocated from the pconf pool. Fixes PR 54357, PR 56919 and a leak with the certinfo_free cleanup function (missing OCSP_CERTID_free). * modules/ssl/ssl_util_stapling.c: drop certinfo_free, and add ssl_stapling_certid_free (used with apr_pool_cleanup_register). Switch to a stapling_certinfo hash which is keyed by the SHA-1 digest of the certificate's DER encoding, rework ssl_stapling_init_cert to only store info once per certificate (allocated from the pconf to the extent possible) and extend the logging. * modules/ssl/ssl_private.h: adjust prototype for ssl_stapling_init_cert, replace ssl_stapling_ex_init with ssl_stapling_certinfo_hash_init * modules/ssl/ssl_engine_init.c: adjust ssl_stapling_* calls Based on initial work by Alex Bligh <alex alex.org.uk> Follow up to r1629372: ensure compatibily with OpenSSL < 1.0 (sk_OPENSSL_STRING_value). Follow up to r1629372 and r1629485: ensure compatibily with OpenSSL < 1.0 (sk_OPENSSL_STRING_[num|value|pop] macros). Submitted by: kbrand, ylavic, ylavic Reviewed/backported by: jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1634529 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@ -272,7 +272,7 @@ apr_status_t ssl_init_Module(apr_pool_t *p, apr_pool_t *plog,
|
||||
return HTTP_INTERNAL_SERVER_ERROR;
|
||||
}
|
||||
#ifdef HAVE_OCSP_STAPLING
|
||||
ssl_stapling_ex_init();
|
||||
ssl_stapling_certinfo_hash_init(p);
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -1067,7 +1067,7 @@ static apr_status_t ssl_init_server_certs(server_rec *s,
|
||||
* later, we defer to the code in ssl_init_server_ctx.
|
||||
*/
|
||||
if ((mctx->stapling_enabled == TRUE) &&
|
||||
!ssl_stapling_init_cert(s, mctx, cert)) {
|
||||
!ssl_stapling_init_cert(s, p, ptemp, mctx, cert)) {
|
||||
ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(02567)
|
||||
"Unable to configure certificate %s for stapling",
|
||||
key_id);
|
||||
@ -1425,7 +1425,8 @@ static apr_status_t ssl_init_server_ctx(server_rec *s,
|
||||
SSL_CERT_SET_FIRST);
|
||||
while (ret) {
|
||||
cert = SSL_CTX_get0_certificate(sc->server->ssl_ctx);
|
||||
if (!cert || !ssl_stapling_init_cert(s, sc->server, cert)) {
|
||||
if (!cert || !ssl_stapling_init_cert(s, p, ptemp, sc->server,
|
||||
cert)) {
|
||||
ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(02604)
|
||||
"Unable to configure certificate %s:%d "
|
||||
"for stapling", sc->vhost_id, i);
|
||||
|
Reference in New Issue
Block a user