Pe Ubuntu 20.04 am descoperit că trebuie să dezactivez TLS1.3 prin setare LDAPTLS_CIPHER_SUITE='NORMAL:!VERS-TLS1.3'
pentru ca ldapsearch să funcționeze împotriva Google LDAP.
Cum am ajuns aici:
Comanda ldapsearch acceptă imprimarea depanării crescute pe consolă prin utilizarea codului -d debuglevel
steag. Nivelul de depanare 1 (-d1
) a fost suficient pentru mine, nivelurile mai mari de depanare devin foarte verbose și greu de citit.
O comandă simplă de depanare ar putea arăta astfel:
vagrant@focal:~$ ldapsearch -H ldaps://ldap.google.com:636 -d1
De aici am putut vedea că certificatul nu era de încredere:
...
încercând să se conecteze:
conectează succesul
TLS: peer cert nede încredere sau revocat (0x42)
TLS: nu se poate conecta: (cod de eroare necunoscut).
...
Acest lucru nu avea niciun sens. Certificatul returnat de ldap.google.com era valid și putea fi verificat în raport cu mine /etc/ssl/certs/ca-certificates.crt
folosind openssl s_client -connect ldap.google.com:636 -CAfile /etc/ssl/certs/ca-certificates.crt
dar ldapsearch nu avea încredere.
In sfarsit am dat peste acest post pe lista de corespondență OpenLDAP, care a explicat că problema era că SNI nu este acceptat, ceea ce ar determina Google să returneze un certificat autosemnat invalid. Nu am reușit să găsesc o remediere adecvată, dar soluția din partea de jos pentru a dezactiva TLS1.3 prin setarea LDAPTLS_CIPHER_SUITE
variabila de mediu a funcționat pentru mine, deoarece OpenLDAP-ul meu folosea GnuTLS. Dacă utilizați OpenSSL, probabil că va trebui să găsiți o soluție diferită, dar cauza principală este probabil în continuare aceeași.