Назад | Перейти на главную страницу

Как настроить Apache, чтобы он проверял сертификат клиента с сертификатом в LDAP?

Я пытаюсь настроить свой сервер Apache для проверки подлинности HTTPS с сертификатами клиентов, используя LDAP в качестве каталога моих пользователей.

Что я хочу сделать, так это то, что Apache просит пользователей аутентифицировать себя с помощью сертификата (то есть без логина / пароля), а затем Apache должен проверить его в LDAP: если сертификат, предоставленный пользователем, действителен, Apache вернет «это работает », иначе будет возвращено 401 разрешение.

На данный момент я сделал следующее: защитил соединение между пользователями и Apache, а также между Apache и LDAP. Пользователь также предоставляет свой сертификат Apache, когда пытается аутентифицироваться. Моя проблема в том, что пользователь предоставляет сертификат Apache, но Apache не проверяет, совпадает ли сертификат, предоставленный пользователем, с сертификатом, связанным с пользователем в каталоге LDAP.

Вот мой файл конфигурации:

 < VirtualHost *:443>

    SSLEngine on
    SSLCertificateKeyFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/certs/apache.pem"
    SSLCertificateFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/certs/apache.crt"
    SSLCACertificateFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/certs/root.crt"
    SSLCACertificatePath "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/certs/"
    SSLProtocol all -SSLv3 -SSLv2

    <Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs">
        AuthType Basic
        AuthName "Authorized Personnel Only"
        AuthLDAPBindDN "cn=ldapadm,dc=ldap,dc=domain"
        AuthLDAPBindPassword "password"
        AuthBasicProvider ldap
        AuthLDAPURL "ldap://ldap.com/ou=People,dc=ldap,dc=domain?cn" STARTTLS
        AuthzLDAPAuthoritative off
        Require valid-user

        SSLUserName SSL_CLIENT_CERT_S_DN_CN
        SSLRequire %{SSL_CLIENT_CERT_S_DN_CN} eq %{REMOTE_USER}
        SSLVerifyDepth 10
        SSLVerifyClient require
    </Directory>
< /VirtualHost>