Назад | Перейти на главную страницу

openssl s_client игнорирует настраиваемый сертификат корневого ЦС в / usr / share / ca-Certificates

Я установил сервер Active Directory и настроил LDAP-over-SSL, который отлично работает для машин в домене, однако, поскольку он использует сертификаты, предоставленные службами сертификации AD, это вызывает проблемы в других местах.

Я пытаюсь подключиться к порту LDAP-over-SSL из коробки Debian, используя openssl s_client, и я получаю эту ошибку:

Verify return code: 21 (unable to verify the first certificate)

Я добавил свой новый сертификат корневого ЦС в /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.