I've tried this both with the stock (fully patched) RedHat 7.2, and with
a fresh-built Apache 1.3.26 + modssl-2.8.10-1.3.26 + openssl-0.9.6g.

With the attached config snippet for a "private" directory, based on the
samples from the documentation, the webserver first asks me for my
certificate, successfully validates it, and *then* asks me for a
username/password. I know the certificate is successfully authenticated,
as I've modified my CustomLog entry to log the values of
SSL_CLIENT_S_DN, SSL_CLIENT_VERIFY, and SSL_CIPHER_USEKEYSIZE.

If I comment out the four lines for network-based access control:

    #Order                   deny,allow
    #Deny                    from all
    #Allow                   from 127.0.0.1
    #Allow                   from 199.85.99.0/24

Then I get my expected behaviour, which is:
- if I give a certificate, I get access
- if I don't give a certificate, I am asked for username/password

Am I being dense about combining access control methods, or is there a
bug somewhere?

Thanks in advance,

-- 
Harald Koch     <[EMAIL PROTECTED]>

"It takes a child to raze a village."
                -Michael T. Fry


<Directory /var/www/html/private>
    #       any "intranet' access is allowed
    #       but from the Internet only HTTPS + Strong-Cipher + Password
    #       or the alternative HTTPS + Strong-Cipher + Client-Certificate

    #       If HTTPS is used, make sure a strong cipher is used.
    # Additionally, allow client certs as an alternative to basic auth.
    SSLRequireSSL
    SSLVerifyClient         optional
    SSLVerifyDepth          2
    SSLOptions              -StrictRequire +OptRenegotiate +StdEnvVars
    SSLRequire ( %{SSL_CIPHER_USEKEYSIZE} >= 128 and %{SSL_CLIENT_VERIFY} eq "SUCCESS" 
)

    #   Allow any of certs, network access or basic auth
    Satisfy                 any

    #   Network Access Control
    Order                   deny,allow
    Deny                    from all
    Allow                   from 127.0.0.1
    Allow                   from 199.85.99.0/24

    #   HTTP Basic Authentication
    AuthType                Basic
    AuthName                "CFRQ users"
    AuthUserFile            /etc/httpd/conf/passwd
    Require                 valid-user
</Directory>
______________________________________________________________________
Apache Interface to OpenSSL (mod_ssl)                   www.modssl.org
User Support Mailing List                      [EMAIL PROTECTED]
Automated List Manager                            [EMAIL PROTECTED]

Reply via email to