1 votes

LDAP + TLS - comportement différent sur deux machines

Machines :

  1. debian wheezy
  2. suse 11

des commandes :

  1. ldapsearch -ZZ -h ad.unsw.edu.au -x
  2. perl -we "use Net::LDAP; print Net::LDAP->new ('ad.unsw.edu.au')->start_tls(verify => 'require', capath => '/etc/ssl/certs/')->{errorMessage}"

les résultats :

  • machine 1, commande 1 : TLS : le nom d'hôte ne correspond pas au CN du certificat du pair
  • machine 1, commande 2 : fonctionne
  • machine 2, commande 1 : fonctionne
  • machine 2, commande 2 : Impossible de déterminer le nom d'hôte du pair pour la vérification

je ne peux pas expliquer cette incohérence et je veux vraiment que la commande 2 fonctionne sur la machine 2. des idées ?

après un strace, il semble que debian-ldapsearch cherche à /etc/ssl/certs/ca-certificates.crt et suse-ldapsearch ne regarde RIEN. debian- Net::LDAP est à la recherche de /etc/ssl/certs/157753a5.? ( AddTrust_External_Root.pem ) et suse- Net::LDAP ne regarde RIEN.

0 votes

Pour info, le réglage verify='none' n'aide pas.

1voto

jcollum Points 10236

Vous devez vérifier que le certificat SSL distant a la partie "CN" du sujet identique au nom d'hôte du serveur LDAPS dans vos commandes (ad.unsw.edu.au).

Pour voir l'utilisation du certificat distant :

echo ""|openssl s_client -connect ad.unsw.edu.au:636 |openssl x509 -noout -subject -dates -issuer

Tous les détails :

echo ""|openssl s_client -connect ad.unsw.edu.au:636 |openssl x509 -noout -text

Vérifiez que le certificat racine de l'émetteur est importé et approuvé dans l'annuaire ldap (cf. OpenLDAP SSL ) et le keystore SSL de perl (cf. IO::Socket::SSL ). S'il s'agit d'un certificat d'auto-signature, ce certificat doit être ajouté au trousseau de clés SSL de confiance.

1 votes

Des chemins intéressants pour le client openssl, considérant que @Jayen semble avoir un environnement Linux. Je peux voir que votre Solaris-Fu est fort :-)

0 votes

Oui :). J'ai l'impression que le /usr/sfw est absent de Linux. Je vais modifier ma réponse.

0 votes

Yup : echo -n | openssl s_client -connect ad.unsw.edu.au:636 | openssl verify -CAfile /tmp/COMODOHigh-AssuranceSecureServerCA.crt Merci !

1voto

Thomas Maas Points 1185

Net::LDAP::start_tls() est cassé dans perl-ldap-0.43. Votre ligne de commande devrait fonctionner correctement si vous mettez à jour vers 0.44 ou plus. Ceci est documenté dans le fichier Changes :

http://cpansearch.perl.org/src/MARSCHAP/perl-ldap-0.44/Changes

Bug Fixes
 * un-break certificate verification

0 votes

Merci pour cela. J'ai trouvé un correctif dans github, et je me demande pourquoi ils n'ont pas sorti la 0.44 plus tôt. github.com/perl-ldap/perl-ldap/pull/3

0voto

PrashantN Points 1

Ligne 233 du Net/LDAP.pm sur Net::LDAP 0,43 dit

SSL_verifycn_scheme => "ldap",

debian wheezy utilise la 0.40, mais la mise à jour vers la 0.43 depuis unstable la casse également.

https://rt.cpan.org/Public/Bug/Display.html?id=70795

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X