1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-06 09:01:14 +03:00
Commit Graph

616 Commits

Author SHA1 Message Date
Joe Orton
e2e8cc8e79 Extend mod_status output to include SSL session cache status
information:

* modules/ssl/mod_ssl.c (ssl_hook_pre_config): Call
ssl_scache_status_register.

* modules/ssl/ssl_scache.c (ssl_scache_status): Removed function.
(ssl_ext_status_hook): Renamed from ssl_ext_ms_display: switch to
2.1's mod_status "status_hook" API.
(ssl_scache_status_register): Register optional hook.

* modules/ssl/ssl_scache_dbm.c (ssl_scache_dbm_status): Adjust to use
new API.

* modules/ssl/ssl_scache_shmcb.c (ssl_scache_shmcb_status): Adjust
to use new API.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101889 13f79535-47bb-0310-9956-ffa450edef68
2003-11-25 16:59:10 +00:00
Joe Orton
9ddbb80f51 Remove shmht session cache in favour of shmcb; shmht has had
data corruption bugs since being apr_rmm'ified.

* config.m4, mod_ssl.dsp: Don't build ssl_util_table and
ssl_scache_shmht.

* ssl_util_table.h, ssl_util_table.c, ssl_scache_shmht.c: Removed
files.

* mod_ssl.h (SSLModConfigRec): Use a void * pointer for storing
the scache-specific data.

* ssl_engine_config.c (ssl_cmd_SSLSessionCache): Treat shmht: as
shmcb:.

* ssl_scache.c: Remove shmht hooks throughout.

* ssl_scache_shmcb.c: Remove casts to use the table_t * pointer as a
void *.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101888 13f79535-47bb-0310-9956-ffa450edef68
2003-11-25 15:46:37 +00:00
Joe Orton
c665770e7c * modules/ssl/ssl_engine_vars.c (ssl_var_log_handler_x): Fix
unused variable from previous commit.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101881 13f79535-47bb-0310-9956-ffa450edef68
2003-11-25 13:16:10 +00:00
Joe Orton
7aa9696571 * modules/ssl/ssl_engine_vars.c (ssl_var_lookup): Only call
ssl_var_lookup_ssl for a real SSL connection; fix lookup of "HTTPS"
for non-SSL connections.
(ssl_var_log_handler_x): Give results for non-SSL connections too;
e.g. %{HTTPS}x does the right thing.

PR: 23956


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101880 13f79535-47bb-0310-9956-ffa450edef68
2003-11-25 13:10:09 +00:00
Joe Orton
5bd9d41311 * modules/ssl/ssl_engine_vars.c (ssl_var_lookup_ssl_version):
Determine the library version string at run-time rather than at
compile-time.

Submitted by: Eric Seidel <eseidel@apple.com>
PR: 23956


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101879 13f79535-47bb-0310-9956-ffa450edef68
2003-11-25 12:46:32 +00:00
Joe Orton
2c999f855a * modules/ssl/ssl_engine_init.c (ssl_init_proxy_certs): Fail early
(rather than segfault later) if a client cert is configured which is
missing either the certificate or private key.

PR: 24030


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101878 13f79535-47bb-0310-9956-ffa450edef68
2003-11-25 12:35:45 +00:00
Justin Erenkrantz
c02dcf4c02 Sync with APR-util deprecated functions.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101789 13f79535-47bb-0310-9956-ffa450edef68
2003-11-16 02:22:25 +00:00
Joe Orton
1a97fbae07 * ssl_engine_log.c (ssl_log_ssl_error): Use the thread-safe
interface for retrieving error strings.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101625 13f79535-47bb-0310-9956-ffa450edef68
2003-10-30 12:15:28 +00:00
Joe Orton
ae0cef9c80 Fix missing human-readable error information in SSL log messages:
* mod_ssl.c (ssl_cleanup_pre_config): Don't free the error strings,
since they can't be loaded again once.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101624 13f79535-47bb-0310-9956-ffa450edef68
2003-10-30 12:07:06 +00:00
Joe Orton
0917d6edc8 * modules/ssl/ssl_engine_vars.c (ssl_var_log_handler_c): Fix
segfault on a non-SSL request.

PR: 22741
Submitted by: Gary E. Miller <gem@rellim.com>


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101534 13f79535-47bb-0310-9956-ffa450edef68
2003-10-23 13:12:38 +00:00
Joe Orton
bc1c3f3d88 Fix a cosmetic issue where OpenSSL 0.9.7 will dump the error stack
during pass phrase entry.

* ssl_engine_pphrase.c (ssl_pphrase_Handle): Clear the OpenSSL error
stack before reading the private key.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101515 13f79535-47bb-0310-9956-ffa450edef68
2003-10-22 15:04:11 +00:00
William A. Rowe Jr
bfc7b8e373 SSL-C doesn't declare the char* file arg const, so we shouldn't either.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101303 13f79535-47bb-0310-9956-ffa450edef68
2003-09-22 19:26:21 +00:00
Jim Jagielski
a2c6b81c28 These silent errors have bitten me a few times, now that we
use APR'd dbm. mod_ssl had hacked sdbm for larger sizes.

PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101214 13f79535-47bb-0310-9956-ffa450edef68
2003-09-10 14:21:12 +00:00
William A. Rowe Jr
bea15a2e01 Simplify includes - we always (in HTTPD 2.1 forward) are looking
for the openssl/foo.h headers explicitly.  Fix the abs.dsp build
  to define HAVE_OPENSSL instead of USE_SSL so the correct headers
  are included upfront.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101195 13f79535-47bb-0310-9956-ffa450edef68
2003-09-08 16:03:49 +00:00
Jeff Trawick
aa21671e13 switch to APR 1.0 API (which is still in flux)
because of the changes to the argument lists of apr_mmap_dup and apr_socket_create,
2.1-dev won't build with apr and apr-util's 0.9 branch anymore


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101154 13f79535-47bb-0310-9956-ffa450edef68
2003-09-03 19:27:12 +00:00
Joe Orton
c198e9b265 * ssl_engine_io.c (ssl_io_filter_connect): Check the
library code as well as the reason code when looking for the
plain-HTTP-request error.

Submitted by: Stephen Henson <steve@openssl.org>


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101135 13f79535-47bb-0310-9956-ffa450edef68
2003-08-29 14:45:26 +00:00
Cliff Woolley
d42d73e282 Make mod_ssl consistent with itself when you have a halfass install of
openssl-engine (ie, you're missing the headers).  ssl_cmd_SSLCryptoDevice()
is thrown away by the preprocessor if you're missing the header, so the
call to it should have the same condition applied.  otherwise, mod_ssl
will fail to link.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100970 13f79535-47bb-0310-9956-ffa450edef68
2003-08-12 20:58:53 +00:00
Sander Striker
a16483cdbb Trivial change to reporting an error when an identity spoof is
encountered with respect to FakeBasicAuth.

Submitted by: Greg Stein


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100941 13f79535-47bb-0310-9956-ffa450edef68
2003-08-08 09:34:20 +00:00
Sander Striker
8fc6144ca2 Add an error msg when encountering a spoofed identity. If this would
have been here in the first place.  Makes issues like these be found
easier in the future.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100937 13f79535-47bb-0310-9956-ffa450edef68
2003-08-07 23:57:11 +00:00
Sander Striker
ee9dda04d6 Fix FakeBasicAuth for subrequests. This was reported via issue
#1364 in Subversion:

  http://subversion.tigris.org/issues/show_bug.cgi?id=1364

The fix is to make mod_ssl's check_user_id hook stop tripping
over it's own checks in case of a subrequest.  That is, it
should DECLINE in case of a subrequest.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100926 13f79535-47bb-0310-9956-ffa450edef68
2003-08-07 01:53:11 +00:00
William A. Rowe Jr
8606e3c92a Although we initialize mc->pid in the child init phase,
we haven't initialized it before initially performing
  our ssl_rand_seed() in the parent/postconfig phase.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100912 13f79535-47bb-0310-9956-ffa450edef68
2003-08-05 22:49:42 +00:00
Joe Orton
3b7ec87745 Prevent the OpenSSL id_callback from pointing at a mod_ssl
function after mod_ssl is unloaded.

* ssl_util.c (ssl_util_thread_cleanup): Clear the id_callback.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100767 13f79535-47bb-0310-9956-ffa450edef68
2003-07-24 15:35:05 +00:00
Joe Orton
eb49ea1f5c Prevent segfaults after SSL renegotiation failures.
* modules/ssl/ssl_engine_kernel.c (ssl_hook_Access): Set aborted flag
after renegotiation failure.

* modules/ssl/ssl_engine_io.c (ssl_filter_write, ssl_io_filter_output):
Don't dereference BIOs in filter_ctx when filter_ctx->pssl is NULL.
(ssl_filter_io_shutdown): Set aborted flag on abortive shutdown.

PR: 21370
Submitted by: Hartmut Keil <Hartmut.Keil@adnovum.ch>
Cleaned up by: Jeff Trawick, Joe Orton


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100720 13f79535-47bb-0310-9956-ffa450edef68
2003-07-21 12:02:40 +00:00
Jeff Trawick
0420b56357 mod_ssl: Fix a problem setting variables that represent the
client certificate chain.

PR:  21371


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100605 13f79535-47bb-0310-9956-ffa450edef68
2003-07-14 17:28:14 +00:00
Jeff Trawick
78fc3f4c59 not valid to modify string pointed to by szCryptoDevice... it points to a
static string or something parsed from the config


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100603 13f79535-47bb-0310-9956-ffa450edef68
2003-07-14 17:16:47 +00:00
Sander Striker
89b50b488d Forward port patch for CAN-2003-0192 from 2.0.
SECURITY [CAN-2003-0192]: Fixed a bug whereby certain sequences
of per-directory renegotiations and the SSLCipherSuite directive
being used to upgrade from a weak ciphersuite to a strong one
could result in the weak ciphersuite being used in place of the
strong one.  [Ben Laurie]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100518 13f79535-47bb-0310-9956-ffa450edef68
2003-07-09 12:27:12 +00:00
William A. Rowe Jr
94d918ff59 Narrow the scope of several OPENSSL-specific setup and teardown calls
to only OpenSSL based builds.

  Also introduce success result for the registered cleanup callback
  to clean up a compiler emit.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100348 13f79535-47bb-0310-9956-ffa450edef68
2003-06-24 21:40:32 +00:00
Martin Kraemer
2324dc4003 Use portable macro instead of the (no longer working) Apache-1.3 code
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100314 13f79535-47bb-0310-9956-ffa450edef68
2003-06-20 12:52:18 +00:00
Martin Kraemer
a4da940b99 Needed on EBCDIC systems
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100313 13f79535-47bb-0310-9956-ffa450edef68
2003-06-20 12:50:11 +00:00
William A. Rowe Jr
1e0682040d Reaction to Jeff Trawick's observations that we are double-initializing
dynalinked OpenSSL Engines and Configs.  Move the library teardown code
  so that it is torn down in the proper order, corresponding to when the
  library itself was initialized.  And leave a little reminder that some
  memory diagnostics would be good if OpenSSL is built for malloc debugging.

Suggested by: Geoff Thorpe


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100288 13f79535-47bb-0310-9956-ffa450edef68
2003-06-17 17:44:40 +00:00
William A. Rowe Jr
68c6581851 OPENSSL_load_builtin_modules -appears- to have been introduced in beta-1,
but boy is this a hassle to determine without gstein's viewcvs ;-)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100211 13f79535-47bb-0310-9956-ffa450edef68
2003-06-11 17:55:47 +00:00
Jeff Trawick
8f0cd048e0 Unix: Handle permissions settings for flock-based mutexes in
unixd_set_global|proc_mutex_perms().  Allow the functions to be
called for any type of mutex.

This resolves a fatal problem with mod_rewrite on systems where
APR uses flock-based mutex.

It simplifies mod_ssl as well, which had special logic to perform
the chown().  It fixed an init error with mod_ssl on systems where
flock is used when the user had no SSLMutex directive.

The Unix MPMs continue to call unixd_set_global|proc_mutex_perms()
only for SysV sems.  There is no permission problem with flock-based
accept mutexes since the child init logic for the MPMs is done
prior to switching identity.

PR:              20312


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100189 13f79535-47bb-0310-9956-ffa450edef68
2003-06-07 19:50:01 +00:00
William A. Rowe Jr
10d2882267 The right patch (thanks to Eric for identifying the wrong patch) to move
SSL_library_init() into the register hooks phase.  OpenSSL_add_ssl_algorithms
  devolves to SSL_library_init, which is the same for most toolkits (and would
  be accomodated in ssl_toolkit_config.h if not.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100136 13f79535-47bb-0310-9956-ffa450edef68
2003-06-02 13:30:53 +00:00
Justin Erenkrantz
0c3703cb4b Revert revision 1.81 which called non-existent SSL_load_library.
No idea where this was seen, but OpenSSL 0.9.7b does not have this.  This
gets mod_ssl working again.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100122 13f79535-47bb-0310-9956-ffa450edef68
2003-05-31 19:29:47 +00:00
William A. Rowe Jr
0968895c8a OpenSSL_add_all_algorithms is simply an alias for SSL_load_library.
Note that the entire schema of what-we-load-how follows from
  OpenSSL 0.9.7's own apps/ example applications.  More review
  is greatly desired, but that's where I believed I should
  start looking for the 'correct' order of operations.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100110 13f79535-47bb-0310-9956-ffa450edef68
2003-05-30 21:35:04 +00:00
William A. Rowe Jr
f74d7f0f69 Provide a far more useful explanation when SSLCryptoDevice fails to
find a device.  Still would be nice to implement dynamic:{options}
  but this gets us to display the usual, builtin devices.

  We now load builtin engines up front, in the pre_config phase, because
  this and any other config cmd processor must have an already valid
  library config.  So loading builtin engines becomes redundant in this
  cmd handler.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100108 13f79535-47bb-0310-9956-ffa450edef68
2003-05-30 21:01:57 +00:00
William A. Rowe Jr
282d19b590 Solve a pretty horrific bug in SSLCryptoDevice and other places where
the config cmd processors should be examining the SSL context.  We must
  initialize the SSL library before we can actually obtain any useful
  information from the SSL library.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100107 13f79535-47bb-0310-9956-ffa450edef68
2003-05-30 20:58:55 +00:00
William A. Rowe Jr
fb9c4b137c Based on list discussion between myself and Geoff, it seems prudent
to check for both the existence of the openssl/engine.h header file
  and some 'expected function' such as ENGINE_init() (better suggestions
  are welcome.)  Also clear up some confusion; so long as we have
  ENGINE_load_builtin_engines() we should attempt to preload those.

  This patch protects all ENGINE-based code within the tests for the
  engine header and function, and changes a version test into a
  function test.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100104 13f79535-47bb-0310-9956-ffa450edef68
2003-05-30 18:41:53 +00:00
William A. Rowe Jr
b36a32b59a These tests now exist in acinclude.m4
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100041 13f79535-47bb-0310-9956-ffa450edef68
2003-05-27 19:28:39 +00:00
William A. Rowe Jr
26f1ba8050 The patch below reverts the prior commit to eliminate SSL_set_state().
Some additional work or research is required in order to pass the
  perl-framework regressions, but I don't have the cycles and don't
  care to leave the broken code in cvs HEAD.

REVERTING: wrowe 2003/05/19 08:13:19

  Modified:    modules/ssl config.m4 ssl_engine_io.c ssl_engine_kernel.c
                        ssl_toolkit_compat.h
  Log:
    Drop SSL_set_state() in favor of a proper SSL_renegotiate() to begin
    rehandshaking the SSL connection, vis-a-vis ApacheSSL.

  Revision  Changes    Path
  1.15      +0 -1      httpd-2.0/modules/ssl/config.m4
  1.108     +1 -1      httpd-2.0/modules/ssl/ssl_engine_io.c
  1.93      +1 -1      httpd-2.0/modules/ssl/ssl_engine_kernel.c
  1.34      +0 -6      httpd-2.0/modules/ssl/ssl_toolkit_compat.h


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100004 13f79535-47bb-0310-9956-ffa450edef68
2003-05-22 19:41:32 +00:00
William A. Rowe Jr
1a6f1ae739 Drop SSL_set_state() in favor of a proper SSL_renegotiate() to begin
rehandshaking the SSL connection, vis-a-vis ApacheSSL.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99921 13f79535-47bb-0310-9956-ffa450edef68
2003-05-19 15:13:19 +00:00
William A. Rowe Jr
e7da7b52c0 Drop archiac notes - no special steps required once we test for ENGINE_init()
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99920 13f79535-47bb-0310-9956-ffa450edef68
2003-05-19 15:04:06 +00:00
William A. Rowe Jr
a5708f15e6 Roll away the SSL_EXPERIMENTAL_ENGINE test in favor of testing for the
ENGINE_init() function in config.m4, and rely on HAVE_ENGINE_INIT instead.

Reviewed by: Ben Laurie (concept)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99919 13f79535-47bb-0310-9956-ffa450edef68
2003-05-19 14:48:47 +00:00
William A. Rowe Jr
aab043443e First point out that we lost HAVE_SSL_SET_STATE and HAVE_SSL_SET_CERT_STORE
autoconf discovery.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99918 13f79535-47bb-0310-9956-ffa450edef68
2003-05-19 14:43:20 +00:00
Justin Erenkrantz
9ba66751f2 Get the AP_ and APR_ prefixes right.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99879 13f79535-47bb-0310-9956-ffa450edef68
2003-05-16 21:16:35 +00:00
William A. Rowe Jr
8f2145c831 Why wouldn't this be a mod_ssl header?
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99871 13f79535-47bb-0310-9956-ffa450edef68
2003-05-16 18:22:44 +00:00
William A. Rowe Jr
f066f6c662 Assure that we block on the read BIO when we invoke the read BIO for both
first-use cases (via ssl_io_input_add_filter) and when we are writing and
  need response from the client (via ssl_io_filter_output).  Both of these
  cases are always blocking.  [

PR: 19242
Submitted by:	David Deaves <David.Deaves@dd.id.au>, William Rowe


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99863 13f79535-47bb-0310-9956-ffa450edef68
2003-05-16 16:11:03 +00:00
Jeff Trawick
85d6c41e63 tweak the const-ness of MODSSL_INFO_CB_ARG_TYPE based on the OpenSSL
version

this resolves some warnings with RH 8 (OpenSSL 0.9.6)
and some errors with AIX's native compiler (OpenSSL 0.9.6)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99678 13f79535-47bb-0310-9956-ffa450edef68
2003-05-01 13:10:36 +00:00
Justin Erenkrantz
ec469e2318 Further breakage from r.1.131: MODSSL_INFO_CB_ARG_TYPE also includes the *.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99279 13f79535-47bb-0310-9956-ffa450edef68
2003-04-06 19:40:40 +00:00
Justin Erenkrantz
483bdf7afd Fix compile breakage introduced in r1.131.
MODSSL_INFO_CB_ARG_TYPE already includes 'SSL' in its type.  Don't duplicate.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99278 13f79535-47bb-0310-9956-ffa450edef68
2003-04-06 19:36:19 +00:00