Todo: DH-Parameter einbinden
====== SSL / TLS für OpenLDAP ======
===== Vorraussetzungen =====
* [[ldap|OpenLDAP]] installiert
* [[ssl| SSL Zertifikat]] erstellt
* Korrektes [[bind|DNS]]
* Korrekte [[zeitserver|Uhrzeiten]] auf allen Rechnern
===== Als root Zertifikate, Anträge und Schlüssel an die passenden Stellen kopieren =====
==== Debian (ab 8) ====
Paket: ssl-cert (( legt die gruppe ''ssl-cert'' an und setzt passende Berechtigungen für ''/etc/ssl/private'' ))
adduser openldap ssl-cert
sudo -u openldap -g openldap openssl rsa -in /etc/ssl/private/ssl-cert-snakeoil.key -noout -check
-> ''RSA key ok''
sudo -u openldap -g openldap openssl x509 -in /etc/ssl/certs/ssl-cert-snakeoil.pem -noout -subject
-> ''subject=CN=vm1.z45.internal''
service slapd restart
===== slapd konfigurieren =====
dn: cn=config
changetype: modify
add: olcTlsCaCertificateFile
olcTlsCaCertificateFile: /etc/ssl/certs/ssl-cert-snakeoil.pem
-
add: olcTlsCertificateFile
olcTlsCertificateFile: /etc/ssl/certs/ssl-cert-snakeoil.pem
-
add: olcTlsCertificateKeyFile
olcTlsCertificateKeyFile: /etc/ssl/private/ssl-cert-snakeoil.key
((
''/etc/ldap/slapd.conf'' : ( Debian 4.0 )
TLSCACertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
TLSCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
TLSCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
))
ldapmodify -Y EXTERNAL -H ldapi:/// -f ./olcTls.ldif
-> ''modifying entry "cn=config"''
ldapsearch -QY EXTERNAL -LLL cn=config olcTLSCACertificateFile olcTLSCertificateFile olcTLSCertificateKeyFile
''/etc/default/slapd'' :
SLAPD_SERVICES="ldap:/// ldaps:/// ldapi:///"
Konfiguration prüfen:
slaptest
Dienst neu starten:
service slapd restart
==== testen ====
openssl s_client -connect YOUR_LDAP_SERVER:636 -showcerts -CAfile /home/ca/ca.example.com/cacert.pem
oder
openssl s_client -connect YOUR_LDAP_SERVER:389 -showcerts -starttls ldap -CAfile /home/ca/ca.example.com/cacert.pem
(( erst mit https://github.com/openssl/openssl/pull/2293 verfügbar ))
-> sollte u.a. ''Verification: OK'' ausgeben
===== Client einrichten =====
scp nutzer@192.168.245.101:/etc/ssl/certs/ssl-cert-snakeoil.pem /etc/ssl/certs/vm1.z45.intern.cert.pem
''$HOME/.ldaprc'' :
BASE dc=villa,dc=local
BINDDN cn=admin,dc=villa,dc=local
URI ldap://ldap1.villa.local
TLS_CACERT /etc/ssl/certs/ca.linuxhotel.de.cert.pem
==== Testen ====
ldapsearch -x -W -ZZ
===== Dokumentation =====
* [[ http://www.openldap.org/doc/admin23/tls.html | OpenLDAP und SSL/TLS ]]