none
LDAPs über DNS Alias - SAN Zertifikate an den Domain Controllern / Alternativen? RRS feed

  • Allgemeine Diskussion

  • Hallo Community,

    wir haben viele Anwendungen welche LDAP(s) sprechen, aber nicht in der Lage sind ihren Domain Controller via DcLocator o.ä. Mechanismen zu finden. Die Anwendungen haben daher meistens einen festen LDAP Server eingetragen.

    Aufgabenstellung:

    Wir möchten den LDAP Clients auch einen gewisse Verfügbarkeit gewährleisten. Das ganze muss auch mit LDAP Secure funktionieren.

    Meine Idee:

    Erstellung eines CNAMEs "ldap.domain.de" welcher auf einen Domain Controller zeigt, im fehler oder Wartungsfall wollen wir einfach den CNAME anpassen. Jetzt ist das Problem das der Domain Controller natürlich kein Zertifikat mit SAN für ldap.Domain.de hat.

    Meine Domain Controller haben bereits Zertifikate ohne SAN. 1x Client & Server Auth. sowie für Smartcard Logon, 1x Directory Mail Replication.

    Frage / Problem:

    - Jetzt möchte ich natürlich nicht das DC Auth Template für SANs aktivieren da dann das autoenrollment nicht mehr klappt, gleiches Problem mit anderen Templates. Kann man ein extra Zertifikat explizit für LDAPs verwenden?

    - Geht das wenn ich mehreren DCs das selbe zusätzliche SAN ldap.domain.de eintrage (FQDN muss ja immer an erster stelle stehen) oder kommen dann andere Mechanissmen wie Kerberos / NTLM zu Problemen?

    - Gibt es noch alternativ Lösunge? Zb. via extra AD LDS und Loadbalancing? Hat jemand Erfahrung damit?


    Montag, 28. Juli 2014 14:09

Alle Antworten

  • > Problem mit anderen Templates. Kann man ein extra Zertifikat explizit
    > für LDAPs verwenden?
     
    Nein, AD nimmt das erstbeste.
     
    > - Gibt es noch alternativ Lösunge? Zb. via extra AD LDS und
    > Loadbalancing? Hat jemand Erfahrung damit?
     
    Hm. LDP z.B. macht problemlos einen LDAPS-Connect, wenn ich einfach den
    DNS-Namen der Domäne eingebe. Schon mal probiert? :)
     

    Martin

    Mal ein GUTES Buch über GPOs lesen?

    NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
    And if IT bothers me - coke bottle design refreshment :))
    Montag, 28. Juli 2014 14:37
  • Hallo Martin,

    erst mal danke für dein Feedback. Das mag zwar für Windows Systeme einwandfrei funktionieren, für Anwendungen die unter Unix laufen und einen Bind gegen einen spezifischen Namen möchten klappt das aber nicht. Vor allem ist es ungünstig wenn man viele AD Sites hat und nicht möchte das die Anwendung dann zufällig auf einem DC in einer langsamen Site landet.

    Montag, 28. Juli 2014 14:45
  • > für Anwendungen die unter Unix laufen und einen Bind gegen einen
    > spezifischen Namen möchten klappt das aber nicht.
     
    Dann fiele mir noch "Wildcard-Zertifikat" ein... *.domain.local oder so
    was. Muß IMHO aber dann das einzige Computerzertifikat sein, da wie
    gesagt AD einfach ein passendes verwendet - steuern kannst Du da nichts.
     

    Martin

    Mal ein GUTES Buch über GPOs lesen?

    NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
    And if IT bothers me - coke bottle design refreshment :))
    Dienstag, 29. Juli 2014 09:45
  • Hallo
    Ich hatte die selber Herausforderung und habe mich für ADLDS entschieden. Ich repliziete für LDAP(s) Applikationen die z.B User und Gruppen Informationen mittels LDAP(s) auslesen das AD mit ADLDS. Betreibe 2 ADLDS Server die sich untereinander abgleichen. 2 Möglichkeiten gibt es nun, Du erstellst einen DNS Alias auf einen der beiden Server oder Du setzt einen Load Balancer wie ich das mache ein. Somit hast Du die Ausfallsicherheit.

    Gruss Dani

    Montag, 4. August 2014 13:53
  • Hallo,

    ich stehe auch vor dem Problem, dass ich gerne LDAPS aktivieren möchte. Jeder unserer 5 DCs hat bereits automatisch ein DC-Zertifikat von unserer PKI erhalten. Die LDAPS-Clients fragen aber unseren DNS-Alias an (subdomain.domain.local), dahinter verbirgt sich eine DNS-Round-Robin-Liste. Natürlich meckern dann die LDAPS-Clients, weil der DNS-Alias subdomain.domain.local nicht zum Namen dc1.subdomain.domain.local des antwortenden DCs passen.

    Da aber auch ein DC nur ein Zertifikat haben soll, möchte ich gerne ein neues anlegen. Ich kriege das aber nicht hin, dass ich für ein neues DC-Zertifikat einen SAN angeben kann.

    EDITH sagt: Die 5 DCs sind noch Server 2003 und die PKI läuft auf einem Memberserver mit Server 2012.

    • Bearbeitet wm-hamburg Montag, 13. Oktober 2014 15:07
    Montag, 13. Oktober 2014 14:57
  • Moin Moin,

    Unabhängig von LDAPS muss wenn ein Zertifikat verwendet wird, der Endpunkt der Angesprochen wird, immer mit dem Zertifikat übereinstimmen. Daher funktioniert Round-Robin "out of the box" nicht.

    Man muss über seine PKI für jeden Domain Controller ein neues Zertifikat erstellen welches den entsprechenden Alternate Name verwendet. Man könnte in der PKI das entsprechende Template kopieren und editieren

    Anbei ein ähnliches Beispiel: https://knowledge.zomers.eu/misc/Pages/Create-a-Subject-Alternative-Name-certificate-with-Active-Directory-Certificate-Services.aspx

    Wie in einem vorhergehenden Post präferiere ich die LoadBalancer Lösung mit SSL offloading da die Verfügbarkeit über den LB erhöht wird.

    Viele Grüße


    Philipp Halbedel

    MCP 2003,MCITP EA Server 2008,MCITP EA Windows 7,MCSA2008,MCSA2012 

    Meine Antwort war hilfreich? ich freu mich über eine Bewertung. If my answer was helpful, I'm glad about a rating! 

    I do not represent the organisation I work for, all the opinions expressed here are my own.

    Dienstag, 14. Oktober 2014 07:58
  • Moin,

    danke für die Antwort. Ein Zertifikat mit SAN kann ich mittlerweile erstellen, aber das ersetzt nicht das DC Zertifikat.

    An ein DC Zertifikat werden folgende Anforderungen gestellt: http://support.microsoft.com/kb/291010/en-us

    Ich möchte ja am Ende nur ein Cert auf meinem DC haben, nicht zwei. Ansonsten kann ich wieder nicht deterministisch sagen, welches Cert verwendet wird ... :(


    • Bearbeitet wm-hamburg Dienstag, 14. Oktober 2014 09:05
    Dienstag, 14. Oktober 2014 09:05
  • Hi,

    Am 14.10.2014 um 11:05 schrieb wm-hamburg:

    An ein DC Zertifikat werden folgende Anforderungen gestellt:
    http://support.microsoft.com/kb/291010/en-us
    Ich möchte ja am Ende nur ein Cert auf meinem DC haben, nicht zwei.

    Was hindert sich jetzt daran einen Manuellen Request über die MMC-Computerzertifikate zu erstellen und alle Felder wie gewünscht auszufüllen?
    Anschliessend das ungewünschte Zertifikat löschen und danach das "AutoEnrollment" der Zertifiakte per GPO auf den DCs deaktivieren.

    Tschö
    Mark


    Mark Heitbrink - MVP Windows Server - Group Policy

    Homepage: http://www.gruppenrichtlinien.de - deutsch
    GPO Tool: http://www.reg2xml.com - Registry Export File Converter

    Dienstag, 14. Oktober 2014 10:14
  • Wie Mark bereits geschrieben hat. Das Zertifikat erstellen oder "enrollen", im Store platzieren und das alte löschen. Reboot tut gut und das Thema ist für dich erledigt :)

    Viele Grüße


    Philipp Halbedel

    MCP 2003,MCITP EA Server 2008,MCITP EA Windows 7,MCSA2008,MCSA2012 

    Meine Antwort war hilfreich? ich freu mich über eine Bewertung. If my answer was helpful, I'm glad about a rating! 

    I do not represent the organisation I work for, all the opinions expressed here are my own.

    Dienstag, 14. Oktober 2014 10:25
  • Ich kriege das einfach nicht hin ...

    https://edmckinzie.wordpress.com/2009/03/17/how-to-enable-ldap-over-ssl-using-subject-alternate-names/#comment-2344

    http://www.richardhyland.com/diary/2009/05/12/installing-a-ssl-certificate-on-your-domain-controller/#respond

    Hab es schon nach den Vorschlägen versucht, bzw. die beiden zu kombinieren. Wenn ich mein Request erstelle wie im zweiten Link vorgeschlagen, erhalte ich beim Absenden folgenden Fehler:

    The DNS name is unavailabe and cannot be added to the Subject Alternate name. 0x8009480f
    CERTSRV_E_SUBJECT_DNS_REQUIRED, Denied by Policy Module

    Das kriege ich nicht weg, egal was ich mache, welche Rechte ich gebe... DNS-Name usw. ist alles fein. Ich habe nichtmal einen SAN angegeben bis dahin, nur subject, aber allein dann failed es. Tja, so komm ich mit meinem neuen DC-Cert einfach nicht weiter. Hab nun schon zwei Tage investiert und komme nicht voran.

    Dienstag, 14. Oktober 2014 10:27
  • Moin Moin,

    Deine DC´s verwenden Zertifikate welche Sie wenn das Autoenrollment konfiguriert ist turnusmäßig austauschen. Der eingestellte Wert sind 365 Tage.

    Wenn nun dieses Zertifikat ersetzen werden soll, muss entweder das vorhanden Zertifikatstemplate anpassen oder besser es dupliziert und anpasst werden. Dann wenn der Zertifikatsrequest erstellt wird (über die mmc) den alternate Name eintragen.

    Das Grundlegende Vorgehen ist hier zu sehen https://knowledge.zomers.eu/misc/Pages/Create-a-Subject-Alternative-Name-certificate-with-Active-Directory-Certificate-Services.aspx

    der Unterschied ist, es geht im Link um Webserver und nicht um einen Domaincontroller.

    Viele Grüße


    Philipp Halbedel

    MCP 2003,MCITP EA Server 2008,MCITP EA Windows 7,MCSA2008,MCSA2012 

    Meine Antwort war hilfreich? ich freu mich über eine Bewertung. If my answer was helpful, I'm glad about a rating! 

    I do not represent the organisation I work for, all the opinions expressed here are my own.

    Dienstag, 14. Oktober 2014 11:14
  • Hm, ok aber in den Anforderungen steht, es muss als Template-Namen ComainController haben. Das vorhandene kann ich nicht anpassen, aber duplizieren. Danach hat es aber einen anderen Template-Namen logischerweise ...

    "The certificate template must have an extension that has the BMP data value "DomainController.""

    Dienstag, 14. Oktober 2014 12:01
  • Hi,

    Am 14.10.2014 um 14:01 schrieb wm-hamburg:

    Hm, ok aber in den Anforderungen steht, es muss als Template-Namen
    ComainController haben.

    Das mag an irgendwelchen AutoEnrollment Rules hängen oder sonstigen Automatismen, aber dem Zertifikat selbst, dessen Gültigkeit und dessen Attributen wird es keinerlei Änderung hinzufügen.
    Der Template Name ist nicht Bestandteil des Zertifikats.

    Tschö
    Mark


    Mark Heitbrink - MVP Windows Server - Group Policy

    Homepage: http://www.gruppenrichtlinien.de - deutsch
    GPO Tool: http://www.reg2xml.com - Registry Export File Converter

    Dienstag, 14. Oktober 2014 12:21
  • Hm ... ok. Weil wenn ich das Zertifikat im lokalen Zertifikatsspeicher öffne, sehe ich sehr wohl den Punkt "Zertifikatsvorlagenname". Wie kann ich denn sicherstellen, dass, wenn ich ein neues Cert erstellt und das alte/vorhandene gelöscht habe, alles noch funzt? LDAPS/LDAP kann ich über ldp testen, aber ntlm usw.?
    Dienstag, 14. Oktober 2014 12:54
  • So sieht mein req nun aus, damit erhalte ich auch ein vernünftiges Zert, aber mir fehlt dann der SAN:dns=subdomain.domain.local als Zusatz.

    [Version]
    Signature= "$Windows NT$"
    
    [NewRequest]
    Subject = "CN=srv1.subdomain.domain.local" ;
    KeySpec = 1
    KeyLength = 1024
    Exportable = TRUE
    MachineKeySet = TRUE
    SMIME = FALSE
    PrivateKeyArchive = FALSE
    UserProtected = FALSE
    UseExistingKeySet = FALSE
    ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
    ProviderType = 12
    RequestType = PKCS10
    KeyUsage = 0xa0
    
    [EnhancedKeyUsageExtension]
    OID=1.3.6.1.5.5.7.3.1
    OID=1.3.6.1.5.5.7.3.2
    ;
    ; The subject alternative name (SAN) can be included in the INF-file
    ; for a Windows 2003 CA.
    ; You don't have to specify the SAN when submitting the request.
    ;
    [Extensions]
    2.5.29.17=MCKAsdFghFdrgWhhbS1kZS5oYW1idXJnLWRlLndtLmxvY2Fs
    Critical=2.5.29.17
    ;
    ; The template name can be included in the INF-file for any CA.
    ; You don't have to specify the template when submitting the request.
    ;
    ;[RequestAttributes]
    ;CertificateTemplate=DomainControllerSAN

    Sobald ich den als Attribut mitgebe, fehlt aber hinterher der GUID Eintrag im Zertifikat

        Subject Alternative Name         Other Name:              1.3.6.1.4.1.311.25.1= 0410 6661 6135 3636 3234 3831 6263 3866 6662         DNS Name=W2K3-BO-DC.contoso.com

    Wie bau ich das dann wieder ein?!

    bzw. wie kriege ich die drei Werte GUID, DNS-Name und Domain-Name in base64 codiert...? Wie sieht der source davon aus, den ich konvertieren muss?

    Alternativ kann ich auch auf einem Server 2008 folgenden Extensions Block nutzen:

    [Extensions]
    2.5.29.17 = "{text}"
    _continue_ = "dns=srv01.subdomain.domain.local&"
    _continue_ = "dns=subdomain.domain.local&"
    _continue_ = "guid=041092fa61562bae7940be345eb1daffc972&"

    aber meine GUID ist 36 und nicht 32 Stellen lang, wie in dem Beispiel, und funktioniert daher nicht. Funktionierendes Beispiel:

    2.5.29.17 = "{text}"
    _continue_ = "dns=www01.fabrikam.com&"
    _continue_ = "dn=CN=www01,OU=Web Servers,DC=fabrikam,DC=com&"
    _continue_ = "url=http://www.fabrikam.com&"
    _continue_ = "ipaddress=172.31.10.134&"
    _continue_ = "email=hazem@fabrikam.com&"
    _continue_ = "upn=hazem@fabrikam.com&"
    _continue_ = "guid=f7c3ac41-b8ce-4fb4-aa58-3d1dc0e36b39&"


    • Bearbeitet wm-hamburg Dienstag, 14. Oktober 2014 15:55
    Dienstag, 14. Oktober 2014 14:33