1
0
mirror of https://github.com/apache/httpd.git synced 2026-10-28 11:57:22 +03:00
Commit Graph

747 Commits

Author SHA1 Message Date
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
William A. Rowe Jr
474812c956 Solve SSL-C breakage introduced in mod_ssl.h rev 1.129 and
ssl_engine_kernel.c rev 1.88.  SSL* is not const under SSL-C.

  I've confirmed Jeff's comment that the original patch doesn't harm
  earlier OpenSSL versions which declared no arguments at all.

  I suspect now that we could fold
     #define MODSSL_BIO_CB_ARG_TYPE const char
     #define MODSSL_CRYPTO_CB_ARG_TYPE const char
     #define MODSSL_INFO_CB_ARG_TYPE const SSL*
  into a single MODSSL_CB_ARG_CONST define, but this works for now.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99263 13f79535-47bb-0310-9956-ffa450edef68
2003-04-05 22:45:28 +00:00
William A. Rowe Jr
26b6442ad9 Noop MS DevStudio IDE change to include ssl_toolkit_compat.h
in the list of project headers.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99261 13f79535-47bb-0310-9956-ffa450edef68
2003-04-05 22:27:41 +00:00
William A. Rowe Jr
cd6f871087 Have some consistency! Fixes logic I introduced in 1.37.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99253 13f79535-47bb-0310-9956-ffa450edef68
2003-04-05 19:32:01 +00:00
William A. Rowe Jr
067c217ce4 Reapply the fix *intended* by rev 1.79 in a safer manner. Prior to
all assignments and the final SSL_free(), free ssl_conn->client_cert
  to avoid leaks of this refcounted X509*.  Prereleasing refcounted
  objects is unsafe programming; fix applied to both branches.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99252 13f79535-47bb-0310-9956-ffa450edef68
2003-04-05 19:04:44 +00:00
William A. Rowe Jr
f2b610bc53 EVP_PKEY_free() is refcounted on OpenSSL, but NOT under RSA SSL-C.
Eliminate a number of test failures by conditionally reverting rev 1.79
  pubkey handling in ssl_engine_kernel.c, except under OpenSSL.

  Also revert a rev 1.79 bogisity for all toolkits; it's entirely bogus
  to release a refcount after setting aside the results in a persistant
  structure, in this case sslconn->client_cert from SSL_get_peer_certificate()
  mustn't be freed while sslconn is still in play.  The proper patch (not
  written yet) is to invoke the X509_free(sslconn->client_cert) when we
  cleanup the sslconn structure.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99250 13f79535-47bb-0310-9956-ffa450edef68
2003-04-05 18:36:56 +00:00
William A. Rowe Jr
0bf3ccaa6c A cosmetic change to 1.79 - a real X509 *cert is in play, don't use
that same variable to retrieve/release the quick lookup and discard
  of the peercert.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99244 13f79535-47bb-0310-9956-ffa450edef68
2003-04-05 18:18:08 +00:00
Jeff Trawick
805422eb77 get function prototypes for strcasecmp() and strncasecmp()
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99202 13f79535-47bb-0310-9956-ffa450edef68
2003-04-04 04:02:01 +00:00
Jeff Trawick
4901acb22a Fix a compile failure with recent OpenSSL and picky compilers
(e.g., OpenSSL 0.9.7a and xlc_r on AIX).

The OpenSSL info callback field changed recently from a generic
function pointer to a specific one, and ssl_callback_LogTracingState
wasn't quite right.

old:
ssl.h:        void (*info_callback)();

new:
ssl.h:        void (*info_callback)(const SSL *ssl,int type,int val);


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99201 13f79535-47bb-0310-9956-ffa450edef68
2003-04-04 03:57:10 +00:00
William A. Rowe Jr
e25454c894 Introduce a number of SSLC hints to mod_ssl, including the following
type overrides;

    MODSSL_CLIENT_CERT_CB_ARG_TYPE
    MODSSL_PCHAR_CAST      (for a host of non-void/const sslc values)
    modssl_read_bio_cb_fn  (for several callbacks with same prototypes)

  Declare callback functions appropriately.

  And protect us from indetermineant toolkits with
  #error "Unrecognized SSL Toolkit!"


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99183 13f79535-47bb-0310-9956-ffa450edef68
2003-04-03 04:54:20 +00:00
William A. Rowe Jr
67e8f650ee We presume to HAVE_OPENSSL - we were falling into the SSLC path :-(
Win32 is non-autoconf


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99182 13f79535-47bb-0310-9956-ffa450edef68
2003-04-03 04:41:01 +00:00
William A. Rowe Jr
2fe15470d7 HAVE_SSL_SET_STATE=1 is a product of autoconf for OpenSSL, which we
are missing on Win32.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99180 13f79535-47bb-0310-9956-ffa450edef68
2003-04-03 04:08:06 +00:00
Jim Jagielski
bc968af121 Match what we do with the ssl_scache_dbm
chown junk, which we know is safe and works, and more directly
handles the issue with chown (agreed that a macro is needed
eventually)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99148 13f79535-47bb-0310-9956-ffa450edef68
2003-03-31 14:38:51 +00:00
William A. Rowe Jr
46578da569 Must fix - Win32 can't deal with this code, and we can no longer fix
sysv mutexes with an APR_USE_ test... we have to look at the choice!

  Reviewed by:	Brian Pane, Justin Erenkrantz


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99146 13f79535-47bb-0310-9956-ffa450edef68
2003-03-31 07:24:34 +00:00
André Malo
3dc90e431c Fix mod_ssl.dsp and abs.dsp to use also the openssl-0.9.7-defines for
NO_MD5, NO_IDEA and NO_MDC2 (won't compile otherwise with 0.9.7+ and
restricted crypto algorithms)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99107 13f79535-47bb-0310-9956-ffa450edef68
2003-03-29 04:39:08 +00:00
Jim Jagielski
0deed15fe7 Because SSL's child init is run *after* we change uid/gid. So we need to ensure that file-based
locks have the correct perms so that the child process
can access them


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99104 13f79535-47bb-0310-9956-ffa450edef68
2003-03-29 02:18:43 +00:00
William A. Rowe Jr
60eda291ab Per JimJ's review - we prefer posix over semv, fcntl over flock,
and semv requires no file.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99100 13f79535-47bb-0310-9956-ffa450edef68
2003-03-28 00:43:26 +00:00
William A. Rowe Jr
5d8f1b974a Addendum to r1.74; Keep only the resulting filename in the global pool,
toss the temporary strings away.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99097 13f79535-47bb-0310-9956-ffa450edef68
2003-03-28 00:00:13 +00:00
William A. Rowe Jr
9adb48db9c Addendum to r1.21... I missed the fact that we blew away the init
complete state too early in ssl_init_Module().


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99096 13f79535-47bb-0310-9956-ffa450edef68
2003-03-27 23:51:22 +00:00
William A. Rowe Jr
d4fa0a5a65 Fix a serious bug where the 'next' generation of the server would open
a brand new mutex.  This patch creates a single mutex in the first config
  phase that survives for the life of the server (server->process->pool).

  Now one server generation to the next will respect the same mutex between
  one another, while the previous generation is still mopping up.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99095 13f79535-47bb-0310-9956-ffa450edef68
2003-03-27 23:34:06 +00:00