
Аутентификация 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.