Из того, что я могу сказать, это проблема проверки сертификата, но я понятия не имею, почему.

~ > ldapsearch -x -ZZ -LLL -H ldap://ldap.dark.kow.is -b dc=dark,dc=kow,dc=is
ldap_start_tls: Connect error (-11)

Тем не менее, когда я использую gnutls-cli на том же хосте для подключения, все совершенно нормально. Я действительно в растерянности относительно того, почему это происходит. CA-сертификат доступен в системном хранилище, другие сертификаты, подписанные с ним, в порядке. Сертификаты /CA не истек. Имена хостов совпадают в DNS, поэтому это не нарушает эту валидность.

Убунту 18.04.

gnutls-cli --starttls-proto=ldap --print-cert -p 389 ldap.dark.kow.is

Processed 134 CA certificate(s).
Resolving 'ldap.dark.kow.is:389'...
Connecting to '10.10.220.213:389'...
- Certificate type: X.509
- Got a certificate list of 2 certificates.
- Certificate[0] info:
 - subject `CN=ldap.dark.kow.is', issuer `CN=dark.kow.is CA', serial 0x637523035782280200a2dd2e262980d1, RSA key 4096 bits, signed using RSA-SHA256, activated `2018-01-13 20:22:12 UTC', expires `2028-01-11 20:22:12 UTC', pin-sha256="Xywzn8R32GsgoWQol5pKSJYrFVOrpXk1stF4kKPl1yY="
        Public Key ID:
                sha1:d7aa0336e36c3e63c8c0acb4d80dfa0541cadc0a
                sha256:5f2c339fc477d86b20a16428979a4a48962b1553aba57935b2d17890a3e5d726
        Public Key PIN:
                pin-sha256:Xywzn8R32GsgoWQol5pKSJYrFVOrpXk1stF4kKPl1yY=
        Public key's random art:
                +--[ RSA 4096]----+
                |  .              |
                |oo.              |
                |Eo..             |
                |. ..       .     |
                | +.     S . .    |
                | .=.  =  . .     |
                |o+.=.= +  .      |
                |+...+ B ..       |
                | ..  +.o..       |
                +-----------------+


-----BEGIN CERTIFICATE-----
OMITTED
-----END CERTIFICATE-----

- Certificate[1] info:
 - subject `CN=dark.kow.is CA', issuer `CN=dark.kow.is CA', serial 0x00d0d752ba5297a770, RSA key 2048 bits, signed using RSA-SHA256, activated `2016-12-24 17:49:30 UTC', expires `2026-12-22 17:49:30 UTC', pin-sha256="0Gze+gcPQQ0Dq4mT5pdt5H7z6HMM/NOeHc8pZ5z/BHg="

-----BEGIN CERTIFICATE-----
OMITTED
-----END CERTIFICATE-----

- Status: The certificate is trusted.
- Description: (TLS1.2)-(ECDHE-RSA-SECP256R1)-(AES-256-GCM)
- Session ID: BA:E5:46:52:6E:76:82:94:E7:AE:F2:5C:B5:74:95:54:7E:62:54:86:9F:23:D4:C3:D3:AF:C4:76:10:63:84:7A
- Ephemeral EC Diffie-Hellman parameters
 - Using curve: SECP256R1
 - Curve size: 256 bits
- Version: TLS1.2
- Key Exchange: ECDHE-RSA
- Server Signature: RSA-SHA256
- Cipher: AES-256-GCM
- MAC: AEAD
- Compression: NULL
- Options: extended master secret, safe renegotiation,
- Handshake was completed

- Simple Client Mode:

1 ответ1

0

Хорошо, я наконец понял это. Решение находится в моем /etc/ldap.conf

# Ubuntu has stuff built against GNUtls instead of openssl
# Get this from the gnutls-cli manpage under --priority
TLS_CIPHER_SUITE SECURE256

Я не указывал --priority SECURE256 при выдаче команд gnutls-cli , поэтому он использовал разные алгоритмы. Включая это:

~ > gnutls-cli --starttls-proto=ldap --priority SECURE256  -p 389 ldap.dark.kow.is
Processed 134 CA certificate(s).
Resolving 'ldap.dark.kow.is:389'...
Connecting to '10.10.220.213:389'...
- Certificate type: X.509
- Got a certificate list of 2 certificates.
- Certificate[0] info:
 - subject `CN=ldap.dark.kow.is', issuer `CN=dark.kow.is CA', serial 0x637523035782280200a2dd2e262980d1, RSA key 4096 bits, signed using RSA-SHA256, activated `2018-01-13 20:22:12 UTC', expires `2028-01-11 20:22:12 UTC', pin-sha256="Xywzn8R32GsgoWQol5pKSJYrFVOrpXk1stF4kKPl1yY="
        Public Key ID:
                sha1:d7aa0336e36c3e63c8c0acb4d80dfa0541cadc0a
                sha256:5f2c339fc477d86b20a16428979a4a48962b1553aba57935b2d17890a3e5d726
        Public Key PIN:
                pin-sha256:Xywzn8R32GsgoWQol5pKSJYrFVOrpXk1stF4kKPl1yY=
        Public key's random art:
                +--[ RSA 4096]----+
                |  .              |
                |oo.              |
                |Eo..             |
                |. ..       .     |
                | +.     S . .    |
                | .=.  =  . .     |
                |o+.=.= +  .      |
                |+...+ B ..       |
                | ..  +.o..       |
                +-----------------+

- Certificate[1] info:
 - subject `CN=dark.kow.is CA', issuer `CN=dark.kow.is CA', serial 0x00d0d752ba5297a770, RSA key 2048 bits, signed using RSA-SHA256, activated `2016-12-24 17:49:30 UTC', expires `2026-12-22 17:49:30 UTC', pin-sha256="0Gze+gcPQQ0Dq4mT5pdt5H7z6HMM/NOeHc8pZ5z/BHg="
- Status: The certificate is NOT trusted. The certificate chain uses insecure algorithm. 
*** PKI verification of server certificate failed...
*** Fatal error: Error in the certificate.
*** handshake has failed: Error in the certificate.

Теперь у меня тот же сбой, что и у команд LDAP, и мне нужно отключить этот уровень безопасности в моем ldap.conf, чтобы он снова заработал. Изменение моих сертификатов также будет работать, используя алгоритм, который попадает в категорию SECURE256.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .