Я пытаюсь настроить аутентификацию ldaps на сервере CentOS 6.x с Apache 2.2. Я успешно использую аутентификацию ldap в течение пары лет, но мне нужно заставить ее работать через SSL. У меня загружены ldap_module и authnz_ldap_module. Моя проблема заключается в том, что независимо от того, где в стеке я пытаюсь включить любые директивы, такие как LDAPTrustedClientCert или LDAPTrustedGlobalCert, я получаю сообщения «директива не разрешена здесь». Я пробовал использовать корневую конфигурацию, я пробовал внутри блока в конфигурации vhost, я пробовал разрешить все переопределения и поместить их в файл .htaccess ... все безрезультатно.
Буду рад любым предложениям.
Если по какой-то причине вам необходимо предоставить сертификат клиента при подключении к ldap, вы должны предоставить эти директивы в том же месте, что и ваш AuthType
директива.
<Location /secure-ldap-basic>
AuthType basic
AuthName "LDAP signin required"
AuthBasicProvider ldap
AuthLDAPUrl ldaps://ldap.example.com/ SSL
LDAPTrustedClientCert KEY_BASE64 /etc/pki/tls/private/www.example.com.key
LDAPTrustedClientCert CERT_BASE64 /etc/pki/tls/certs/www.example.com.cert
Require valid-user
</Location>
<Location /secure-ldap-form>
AuthType form
AuthName realm
AuthFormProvider ldap
AuthLDAPUrl ldap://ldap.example.com/ STARTTLS
LDAPTrustedClientCert KEY_BASE64 /etc/pki/tls/private/www.example.com.key
LDAPTrustedClientCert CERT_BASE64 /etc/pki/tls/certs/www.example.com.cert
Require valid-user
AuthFormLoginRequiredLocation /login?%{REQUEST_URI}
Session On
SessionCookieName session path=/
SessionCryptoPassphrase <passphrase>
</Location>
LDAPTrustedClientCert
и LDAPTrustedGlobalCert
предназначены для клиентских сертификатов. Таким образом, они обычно не нужны для защиты связи LDAP с веб-сервера.
Эта директива безопасна почти так же, как и большинство https-соединений:
AuthLDAPUrl ldaps://ldap.example.com/ SSL
Согласно документации apache 2.2:
https://httpd.apache.org/docs/2.2/mod/mod_ldap.html#ldaptrustedclientcert
это должно быть в настройках каталога.
<directory /the/directory/of/stuff>
LDAPTrustedClientCert type directory-path/filename/nickname [password]
</directory>
Кроме того, поскольку вы имеете дело с сертификатами, вы должны находиться на виртуальном хосте SSL.