Я настроил сервер Active Directory и настроил LDAP-SSL, который хорошо работает для машин на домене, однако потому что он использует сертификаты, настроенные Службами сертификации AD, он вызывает проблемы в другом месте.
Я пытаюсь соединиться с портом LDAP-SSL от использования поля Debian openssl s_client
, и я получаю эту ошибку:
Verify return code: 21 (unable to verify the first certificate)
Я добавил свой новый корневой сертификат CA /usr/share/ca-certificates/extra/my-new-root-ca.crt
и выполненный update-ca-certificates
, и использование этой команды работы:
openssl s_client -CAfile /usr/share/ca-certificates/extra/my-new-root-ca.crt -showcerts -connect my.domain.com:636
Принимая во внимание, что это:
openssl s_client -showcerts -connect my.domain.com:636
сети я эти ошибки во главе вывода:
depth=0
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0
verify error:num=27:certificate not trusted
verify return:1
depth=0
verify error:num=21:unable to verify the first certificate
verify return:1
Кроме того, эта команда:
ldapsearch -d8 -x -LLL -H ldaps://my.domain.com -D cn=username -w password -b "dc=my,dc=domain,dc=com" -s sub "(objectClass=user)" givenName
сети я этот вывод:
TLS: can't connect: (unknown error code).
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
Так, это не похоже ни на одного openssl s_client
ни ldapsearch
поднимают сертификат от /etc/ssl/certs/ca-certificates.crt
. Действительно ли на самом деле возможно заставить openssl принимать мой сертификат?
OpenSSL может быть немного… дерганным… относительно того, каким сертификатам он доверяет - иногда он не использует хранилище доверенных сертификатов системы. Измените его конфигурацию в openssl.cnf
, если вы так склонны доверять правильному хранилищу.
Для ldapsearch
сделка того же типа - вы захотите установите доверенный сертификат в ldap.conf
, чтобы он действительно использовал доверенный сертификат, параметр для этого - TLS_CACERT
.