如何configurationApache使他检查与LDAP中的客户端证书?

我正在尝试使用LDAP作为我的用户目录,将我的Apache服务器configuration为使用客户端证书的HTTPS身份validation。

我想要做的是Apache要求用户使用证书进行身份validation(所以没有login名/密码),然后Apache必须在LDAP中检查它:如果用户提供的证书是有效的,那么Apache将返回“它起作用“,否则将返回401所需的授权。

到目前为止,我所做的是:保护用户和Apache之间以及Apache和LDAP之间的连接。 用户在尝试validation自己时也向Apache提供他的证书。 我的问题是,用户向Apache提供证书,但Apache不检查用户提供的证书是否与LDAP目录中与用户关联的证书相匹配。

这是我的configuration文件:

< 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>