[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Petit problème de validation certificat avec OpenLDAP / OpenSSL.



Bonjour à tous,

Je suis en train de mettre en place, sur un serveur de test Debain Sarge un service d'annuaire 'OpenLDAP' sécurisé.

Celui-ci marche bien en 'ldap' mais pas en 'ldaps'.
J'ai un petit problème de vérification de certificat.


Voici la procédure que j'ai suivi :

SUR MON ORDI SERVEUR (IP:aaa.bbb.ccc.ddd) :
-------------------------------------------


Installation du service OpenLDAP (+utilitaire, +couche sécurité) :
#apt-get install slapd libsasl2-modules ldap-utils db4.2-util
#apt-get install openssl ca-certificates


Arrêt de 'ldap' :
-> /etc/init.d/slap stop


Génération du mot de passe 'rootpw' :
-> slappasswd
New .........
Retype .........
{SHA}.....................


Modifications dans mon fichier '/etc/ldap/slapd.conf' :
ajout de :
-> rootdn "cn=admin,dc=TestNSS"
-> rootpw {SSHA}..................


Modification dans '/etc/default/slapd' :
-> SLAPD_SERVICES="ldap:/// ldaps:///"


Génération des certificats auto signés :
comme il est indiqué dans le fichier 'CA.pl' :
# ...
# CA -newca ... will setup the right stuff
# CA -newreq[-nodes] ... will generate a certificate request
# CA -sign ... will sign the generated request and output
# ...

-> cd /etc/ldap/
-> /usr/lib/ssl/misc/CA.pl -newca
-> /usr/lib/ssl/misc/CA.pl -newreq
-> /usr/lib/ssl/misc/CA.pl -sign
-> cp demoCA/cacert.pem .
-> cp newcert.pem server.crt
-> cp newreq.pem server.crypt-key
-> openssl rsa -in server.crypt-key -out server.key

J'ai à la fin :
-> ls -als /etc/ldap/

1.) 'server.crt' (certificat de mon serveur)
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

2.) 'server.key' (clé sans MdP)
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

3.) 'cacert.pem' (??? certificat de la CA ? pour la vérif ?)
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----


Modifications dans '/etc/ldap/slapd.conf' :
...
-> TLSCipherSuite HIGH:MEDIUM:+SSLv2
-> TLSCertificateFile /etc/ldap/server.crt
-> TLSCertificateKeyFile /etc/ldap/server.key
-> TLSCACertificateFile /etc/ldap/cacert.pem
-> #TLSVerifyClient 0
-> TLSVerifyClient allow
...


Redémarrage de 'ldap' :
-> /etc/init.d/slap start



J'ai testé SUR MON ORDI CLIENT :
--------------------------------

-> ldapsearch -b "dc=TestNSS" -LLL -H "ldap://aaa.bbb.ccc.ddd/"; -x "(cn=admin)"
CA MARCHE (SANS MDP)

-> ldapsearch -b "dc=TestNSS" -LLL -H "ldap://aaa.bbb.ccc.ddd/"; -D
"cn=admin,dc=TestNSS" -W -x "(cn=admin)"
CA MARCHE AUSSI (AVEC MDP DE admin)


Mais :

-> ldapsearch -b "dc=TestNSS" -LLL -H "ldaps://aaa.bbb.ccc.ddd/" -x
"(cn=admin)"
ERREUR :
ldap_bind: Can't contact LDAP server (-1)
        additional info: error:14090086:SSL
routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed


et aussi :

-> openssl s_client -connect aaa.bbb.ccc.ddd:636 -showcerts -state
...
...
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
Session-ID: 1D2FDD0C620A67C44DAD128FD35FE3D3CC9F554B9716C73C08CE97FF38F9822B
    Session-ID-ctx:
Master-Key: 0C7D078193BB18BE43EB851BE83EE27C8BCE623AAA025E8BF9A8D8CA4E6AC80727ECFF596B257EFD43263F9AC6CF7B9F
    Key-Arg   : None
    Start Time: 1128671693
    Timeout   : 300 (sec)
    Verify return code: 21 (unable to verify the first certificate)
---



L'erreur est assez clair :-)
Je ne comprends pas pourquoi la vérification du certificat échoue...


Est-ce que ma méthode de génération d'un certificat auto signé est bonne ?
Doit-on mettre quelque chose (clé publique ? certificat ?) sur mon ordinateur client ?



Merci d'avance pour votre aide.
Vincent.
--
-
Mr FARGET Vincent
Administrateur Systèmes
UMR 5020 - Laboratoire des Neurosciences et Systemes Sensoriels
Universite Claude Bernard LYON 1 - CNRS
50, avenue Tony Garnier
69366 LYON Cedex 07
## Ce message est signé par un certificat CNRS ##
http://igc.services.cnrs.fr/Doc/General/trust.html
http://www.urec.cnrs.fr/igc/Certifs_CNRS.html
#####
# Pour que la signature soit valide, vous devrez
#  récupérer préalablement le certificat de
#  l'autorité de certification CNRS-Plus en
#  cliquant sur le lien ci dessous :
http://igc.services.cnrs.fr/cgi-bin/viewca?cmd=load&CA=CNRS-Plus&ca=CNRS-Plus

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


Reply to: