OpenLDAP: сбой подключения на Mac - PullRequest
1 голос
/ 06 июля 2011

На моем Mac я установил OpenLDAP, изменил /etc/openldap/ldap.conf и указал путь к сертификату. Тем не менее, я получаю эту ошибку:

SERVER_DOWN: {
    'info': 
    'error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:
     routines:SSL3_GET_SERVER_CERTIFICATE:
        certificate verify failed (unable to get local issuer certificate)', 
    'desc': "Can't contact LDAP server"
}

Файл ldap.conf содержит:

TLS_REQCERT demand
TLS_CACERT /etc/openldap/CA_tncdc01.cer

И сертификат есть:

$ ll /etc/openldap/CA_tncdc01.cer
-rw-r--r--@ 1 eric  staff  1298 Jun 23 09:12 /etc/openldap/CA_tncdc01.cer

Проверка OpenSSL говорит:

$ openssl verify /etc/openldap/CA_tncdc01.cer 
error 18 at 0 depth lookup:self signed certificate
OK

А для привязки я использую (Python):

url = "ldaps://[snip]:636"
l = ldap.initialize(url)
l.simple_bind_s(bind_name, bind_password)

Кажется, все в порядке.

Спасибо Eric

Ответы [ 2 ]

1 голос
/ 21 июля 2013

Настройка:

TLS_REQCERT demand

... является настройкой проверки сертификата TLS по умолчанию. Это также СТРОГО.

Вероятно, проблема в том, что сертификат самоподписан (как вы указали), однако в вашем конфиге говорится, что требуются идеальные результаты проверки (при части использования 'require' для TLS_REQCERT).

Использование 'require' приведет к сбою любого соединения LDAP SSL / TLS, ЕСЛИ сертификат не идеален во всех отношениях. Это включает в себя проблемы с самоподписанным сертификатом, срок его действия и т. Д. И т. Д.

Тот факт, что вы указали свой "CA" через TLS_CACERT, хорош, но CACERT может быть неполным. Возможно, где-то в цепочке отсутствует строка сертификата. Иногда я видел необходимость объединить несколько ЦС вместе, если, например, сертификат был создан с использованием промежуточного ЦС вместо корневого ЦС.

Несмотря на это, самое простое из возможных исправлений - попытаться заменить «спрос» на «разрешить» или «никогда» и повторить тестирование оттуда. Если бы я мог выбирать, я бы предложил «разрешить» вместо «никогда».

Надеюсь, это поможет ...

Макс

0 голосов
/ 07 июля 2011

Не уверен, но открытый ключ центра сертификации, который публикует сертификат вашего сервера, кажется не понятым. На моем клиенте у меня есть:

BASE dc = dom, dc = fr URI ldaps: //srvldap.dom.fr/ TLS_CACERT /etc/ssl/MyCAcert.pem TLS_REQCERT спрос

.pem и .cer - это один и тот же сертификат DER, один двоичный, другой ASCII, можете попробовать формат pem?

...