Аутентификация ldap не работает с опцией start_tls после обновления сертификата

Аутентификация ldap не работает с опцией start_tls после обновления сертификата

Аутентификация Ubuntu ldap не работает на моем клиенте с включенной опцией ssl start_tls в файле ldap.conf. Я могу пройти аутентификацию, когда закомментирую ssl start_tls.

Я обновил сертификат ldap-серверов, и с тех пор пользователи больше не могут аутентифицироваться на моей клиентской машине Ubuntu 10.04, если включен ssl. Изменения, которые произошли:

Cert upgraded from 1024 to 2048 bit
now is a wildcart cert and use it to be a self-signed cert
encryption algorithm is now shaw512 (use to be md5)

В моем auth.log есть несколько ошибок:

nss-ldap: do_open: do_start_tls не удалось:stat=-1

Новые сертификаты работают, потому что у меня есть несколько других клиентов, которые проходят аутентификацию с использованием новых сертификатов (старые машины CentOS).

Есть ли у кого-нибудь идеи, почему я больше не могу использовать SSL с LDAP на моем клиенте?

решение1

Есть ли иерархия подписей (т.е. не самоподписанный)? "wildcard" и "самоподписанный" не являются взаимоисключающими. Коммерческий wildcard сертификат будет иметь иерархию, т.е. один или несколько промежуточных CA и корневой CA.

sha-512 или md5 являютсяхэшииспользуемые в подписи сертификата, они не являютсяалгоритмы шифрования. Они используются для проверки целостности сертификата, шифр, используемый для соединения, согласовывается независимо от этого.

Я думаю, что наиболее вероятными причинами являются то, что sha512 (точнее, «sha512WithRSAEncryption») не поддерживается в Ubuntu 10; или на машине отсутствует один или несколько сертификатов CA (промежуточных или корневых), поэтому полная проверка цепочки не может быть завершена.

Вы можете проверить, сможет ли openssl работать с новым сертификатом сервера, выполнив (на компьютере с Ubuntu 10):

openssl x509 -in newservercert.crt -noout -text

хотя это может быть не окончательно. Это также может быть полезно:

ldapsearch -x -Z -v -h your.ldap.server

(Есть небольшая вероятность, что вместо OpenSSL используется GnuTLS, тут ничем помочь не могу, извините!)

Вероятно, вы можете подтвердить или опровергнуть наличие проблемы с цепочкой, добавив следующее в файл /etc/ldap/ldap.conf:

TLS_REQCERT never

Если это поможет, вам следует получить недостающие части цепочки и добавить их в локальное хранилище. То, как это будет сделано, зависит от конфигурации клиента. Начните с проверки «TLS_CACERT» и/или TLS_CACERTDIR в директивах /etc/ldap/ldap.conf.

Менее вероятные причины включают в себя:

  • невозможность проверки CRL (проверьте ldap.conf, чтобы убедиться, что эта функция включена)

И если предположить, что больше ничего не изменилось, то для полноты картины были включены маловероятные причины:

  • версия протокола сервера или набор шифров не поддерживаются клиентом
  • изменение поддерживаемых механизмов SASL

решение2

Не уверен, что вы решили этот вопрос. Я столкнулся с такой же ситуацией. 12.04 подключается к серверу ldap с помощью tls, а 10.04 — нет. Мое решение — добавить строку в /etc/ldap/ldap.conf:

TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

и клиент 10.04 может подключаться к серверу LDAP с помощью TLS.

Связанный контент