It was thus said that the Great - - once stated:
> 
> Hi,
> 
> I am recently set-up an environment for testing client certificate based
> authentication on an apache webserver. The test environment is a recent Ubuntu
> 8.10 distro with tinyca2 0.7.5 and apache 2.2.9. I have setup a test root CA,
> two certificates signed by this CA: One for the webserver and one for the 
> user.
> Everything done by tinyca2. First I configured apache to allow only
> ssl-connections (no client certificates yet): Everything worked so far: 
> /var/www
> is only accessible via https. Now I added a new subdirectory /var/www/secret
> with a dummy index.html which should only be accessible by users which 
> provide a
> certificate. So I added this to my sites-enabled/foo.conf:
> 
> ...
> SSLVerifyClient none
> ...
> 
> SSLVerifyClient require
> SSLVerifyDepth 2
> SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
> and %{SSL_CLIENT_S_DN_CN} eq "My name in CN of certificate" )
> 
> 
> What I expected was: outside of /var/www/secret (i.e. in /var/www or
> /var/www/public) documents are accessible by everyone, only inside of
> /var/www/secret a user needs to provide his certificate.
> What I got was: apache asks for the users certificate no matter which document
> is reqested (i.e. inside AND outside of /var/www/secret).
> 
> I used http://www.garex.net/apache/ as How-to.
> Any hints?

  Here is the configuration I'm using that works:

<VirtualHost 66.252.224.242:80>
  ServerName            secure.conman.org
  ServerAdmin           s...@conman.org
  DocumentRoot          /home/spc/web/sites/secure.conman.org/htdocs
  ScriptAlias           /cgin-bin/ 
/home/spc/web/sites/secure.conman.org/cgi-bin/
  CustomLog             /home/spc/web/logs/secure.conman.org combined
  UseCanonicalName      on

  AddType       text/plain .pem

  <Directory /home/spc/web/sites/secure.conman.org/htdocs>
    Options             All
    AllowOverride       None
  </Directory>

</VirtualHost>

<VirtualHost 66.252.224.242:443>
  ServerName            secure.conman.org
  ServerAdmin           s...@conman.org
  DocumentRoot          /home/spc/web/sites/secure.conman.org/s-htdocs
  ScriptAlias           /cgi-bin/ /home/spc/web/sites/secure.conman.org/cgi-bin/
  CustomLog             /home/spc/web/logs/s-secure.conman.org sslcombined
  UseCanonicalName      on

  SSLEngine             on
  SSLCipherSuite        
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:-SSLv2:+EXP
  SSLProtocol           all -SSLv2
  SSLCertificateFile    /home/spc/web/sites/secure.conman.org/server.crt
  SSLCertificateKeyFile /home/spc/web/sites/secure.conman.org/server.key

  <Files ~ "\.(cgi|shtml|phtml|php3?)$">
        SSLOptions      +StdEnvVars
  </Files>

  <Directory /home/spc/web/sites/secure.conman.org/cgi-bin>
        Options         -Indexes
        SSLOptions      +StdEnvVars
  </Directory>

  <Directory /home/spc/web/sites/secure.conman.org/s-htdocs>
    Options             All
    AllowOverride       None
  </Directory>

  <Directory /home/spc/web/sites/secure.conman.org/s-htdocs/library>
    SSLRequireSSL
    SSLRequire  %{SSL_CLIENT_S_DN_O}  eq "Conman Laboratories"  \
            and %{SSL_CLIENT_S_DN_OU} eq "Clients"
    SSLVerifyClient     require
    SSLVerifyDepth      10
  </Directory>

  SetEnvIf      User-Agent      ".*MSIE.*"              \
                nokeepalive ssl-unclean-shutdown        \
                downgrade-1.0 force-response-1.0

</VirtualHost>

  The only thing not here is the following (which is in another part of the
configuration file):

SSLCACertificateFile    /etc/httpd/conf/ssl.calist

  That file contains the CA Certificate (of my self-created CA) so Apache
can authenticate the client certificates.  I used TinyCA to create all the
appropriate certificates.  I did pull a bunch of settings from the ssl
portion of the default configuration and put them here so I had everything
in one place for easy testing.

  -spc




---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
   "   from the digest: users-digest-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org

Reply via email to