Title: Manipulate SSLVerifyClient runtime

Hello!

I'm working with security modules using Apache.

Background:
  I have desinged a new proxy module with some extra functionallity. All requests passing
  the proxy are checked by our AAA server. (Authentication, Authorization, Audit.) Some
  resources (files) requires stronger authentication methods. One of  the methods are SSL.

  The goal is to control SSL certificate flow from an AAA server.

Current solution:
  SSLVerifyClient are unset. What i do in the proxy are to change mod_ssl
  sslDir->nVerifyClient / sslServer->nVerifyClient to SSL_CVERIFY_OPTIONAL_NO_CA.
  This is set in "URI to filename translation" handler of Apache.

  mod_ssl will then re-negotiate the request and ask for client certificate.
  (Without any verify check by mod_ssl.)

  SSLOptions +ExportCertData are set so that the proxy can fetch the certificate in
  the response handler. (The AAA server verifies the certificate.)

  In the end of the response handler, the proxy restores nVerifyClient to unset.

  This solution works. I can control the SSL requirements from the AAA server.

Problem:
  The problem occurs first time mod_ssl tries to re-negotiate.

[Tue Feb  5 09:55:33 2002] [error] mod_ssl: Re-negotiation handshake failed: Not accepted by client!?
[Tue Feb  5 09:55:33 2002] [error] mod_ssl: SSL error on writing data (OpenSSL library error follows)
[Tue Feb  5 09:55:33 2002] [error] OpenSSL: error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure
[Tue Feb  5 09:55:33 2002] [info] [client 192.168.64.102] client stopped connection before rflush completed

  These lines appear in logfile. At this state, the request are 'restarted'.
  (All apache handlers are restarting)
  After restart, theese errors don't occur and my application (proxy) works as wanted.

Question:
  This is probably not the best way to control ssl, but i havn't figured
  out any better way. Don't have the knowledge to design own ssl code.
  I have searched in openssl/mod_ssl documents / sourcecode about this.

  I guess this is a tricky question and I probably post in wrong forum, but
  if anyone have some ideas or suggestions i'll be happy!

  And why does the request restart like that?


Regards,

Stefan Ullgren, Develop

Lemon Planet AB

Phone: +46 (0) 702 69 14 15
e-mail: [EMAIL PROTECTED]
Lemon Planet develops software components and provides services for the new mobile market and customers with high requirements on access, security and collaboration.  http://www.lemonplanet.com



Reply via email to