Aktivieren von LDAP über SSL mit einer Fremdanbieter-Zertifizierungsstelle

In diesem Artikel wird beschrieben, wie Lightweight Directory Access Protocol (LDAP) über SSL (Secure Sockets Layer) mit einer Zertifizierungsstelle eines Drittanbieters aktiviert wird.

Gilt für: Windows Server 2012 R2
Ursprüngliche KB-Nummer: 321051

Zusammenfassung

Das Lightweight Directory Access Protocol (LDAP) wird zum Schreiben und Lesen von und aus dem Active Directory verwendet. Standardmäßig findet der LDAP-Datenverkehr ungesichert statt. Sie können den LDAP-Verkehr vertraulich und sicher gestalten, indem Sie die SSL-/TSL-Technologie nutzen (SSL = Secure Sockets Layer; TSL = Transport Layer Security). Sie können LDAP über SSL (LDAPS) aktivieren, indem Sie anhand der Angaben in diesem Artikel ein entsprechend formatiertes Zertifikat von einer Microsoft-Zertifizierungsstelle oder einer anderen Zertifizierungsstelle installieren.

Es gibt keine Benutzeroberfläche zum Konfigurieren von LDAPS. Durch die Installation eines gültigen Zertifikats auf einem Domänencontroller kann der LDAP-Dienst auf SSL-Verbindungen für LDAP-Verkehr und Verkehr mit globalen Katalogen warten und diesen automatisch akzeptieren.

Voraussetzungen für ein LDAPS-Zertifikat

Sie müssen ein Zertifikat installieren, das folgende Voraussetzungen erfüllt, um LDAPS aktivieren zu können:

  • Das LDAPS-Zertifikat befindet sich im persönlichen Zertifikatsspeicher des lokalen Computers (im Programm der Zertifikatsspeicher MY).

  • Ein privater Schlüssel, der dem Zertifikat entspricht, ist im Speicher des lokalen Computers vorhanden und wird korrekt mit dem Zertifikat verknüpft. Für den privaten Schlüssel darf keine verstärkte Sicherheit aktiviert sein.

  • Die Erweiterung "Erweiterte Schlüsselverwendung" enthält die Objektkennung (OID) der Serverauthentifizierung (1.3.6.1.5.5.7.3.1).

  • Der voll qualifizierte Domänenname des Domänencontrollers im Active Directory (zum Beispiel dc01.contoso.com) muss an einer der folgenden Stellen erscheinen:

    • Allgemeiner Name (CN = Common Name) im Antragstellerfeld.
    • DNS-Eintrag in der Erweiterung "Alternativer Antragstellername".
  • Das Zertifikat wurde von einer Zertifizierungsstelle ausgestellt, der der Domänencontroller und die LDAPS-Clients vertrauen. Die Vertrauensstellung wird eingerichtet, indem Clients und Server so konfiguriert werden, dass sie der Stammzertifizierungsstelle vertrauen, der die ausstellende Zertifizierungsstelle untergeordnet ist.

  • Sie müssen den Schannel Cryptographic Service Provider (CSP) zur Erstellung des Schlüssels verwenden.

Erstellen der Zertifikatanforderung

Jedes Dienstprogramm oder jede Anwendung, die eine gültige PKCS #10-Anforderung erstellt, kann zur Erstellung der SSL-Zertifikatsanforderung verwendet werden. Verwenden Sie „Certreq“ zur Erstellung der Anforderung.

"Certreq.exe" erfordert eine Datei mit Textanweisungen, um eine ordnungsgemäße X.509-Zertifikatanforderung für einen Domänencontroller zu erstellen. Sie können diese Datei mit Ihrem bevorzugten ASCII-Texteditor erstellen. Speichern Sie die Datei als INF-Datei in einen beliebigen Ordner auf Ihrer Festplatte.

Gehen Sie folgendermaßen vor, um ein für LDAPS geeignetes Serverauthentifizierungszertifikat anzufordern:

  1. Erstellen Sie die INF-Datei. Die folgende INF-Beispieldatei kann verwendet werden, um die Zertifikatsanforderung zu erstellen.

    ;----------------- request.inf -----------------

    [Version]

    Signature="$Windows NT$

    [NewRequest]

    Subject = "CN=<DC fqdn>" ; ersetzt durch den FQDN des DC
    KeySpec = 1
    KeyLength = 1024
    ; Kann 1024, 2048, 4096, 8192 oder 16384 sein.
    ; Ene größere Schlüsselgröße ist sicherer, wirkt sich jedoch
    ; stark auf die Leistung aus.
    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 ; dient zur Serverauthentifizierung

    ;-----------------------------------------------

    Kopieren Sie die Beispieldatei in eine neue Textdatei mit dem Namen Request.inf. Geben Sie in der Anforderung den vollqualifizierten DNS-Namen des Domänencontrollers ein.

    Hinweis: Einige Zertifizierungsstellen von Drittanbietern erfordern u. U. zusätzliche Informationen im Parameter „Subject“. Diese Informationen beinhalten beispielsweise Emailadresse (E), Organisationseinheit (OU), Organisation oder Firma (O), Stadt oder Ort (L), Bundesstaat oder Bundesland (S) und Land oder Region (C). Sie können diese Information an den Betreffnamen (CN) der Datei "Request.inf" anhängen. Beispiel:

    Subject="E=admin@contoso.com, CN=<DC fqdn>, OU=Servers, O=Contoso, L=Redmond, S=Washington, C=US."

  2. Erstellen Sie die Anforderungsdatei, indem Sie den folgenden Befehl in der Eingabeaufforderung ausführen:

    certreq -new request.inf request.req
    

    Es wird eine neue Datei mit dem Namen Request.req erstellt. Dies ist die Base64-codierte Anforderungsdatei.

  3. Senden Sie die Anforderung an eine Zertifizierungsstelle. Sie können die Anforderung an eine Microsoft- oder an eine Fremdanbieter-Zertifizierungsstelle senden.

  4. Holen Sie das ausgegebene Zertifikat ab und speichern Sie dieses dann unter dem Namen „Certnew.cer“ im selben Ordner wie die Anforderungsdatei.

    1. Erstellen Sie eine neue Datei mit dem Namen Certnew.cer.
    2. Öffnen Sie die Datei im Editor, fügen Sie das codierte Zertifikat in die Datei ein, und speichern Sie anschließend die Datei.

    Hinweis

    Hinweis: Das gespeicherte Zertifikat muss base64-codiert sein. Einige Fremdanbieter-Zertifizierungsstellen senden das ausgestellte Zertifikat in Form eines Base64-codierten Texts in einer E-Mail-Nachricht an den Anforderer.

  5. Akzeptieren Sie das ausgestellte Zertifikat, indem Sie den folgenden Befehl in der Eingabeaufforderung ausführen:

    certreq -accept certnew.cer
    
  6. Überprüfen Sie, ob das Zertifikat im privaten Informationsspeicher des Computers installiert wurde.

    1. Starten Sie die Microsoft Management Console (MMC).
    2. Fügen Sie der Konsole das Zertifikate-Snap-In hinzu, das auf dem lokalen Computer die Zertifikate verwaltet
    3. Erweitern Sie nacheinander Zertifikate - Lokaler Computer, Persönlich und Zertifikate. Im privaten Informationsspeicher müsste jetzt ein neues Zertifikat vorhanden sein. Im Dialogfeld Zertifikateigenschaften wird der beabsichtigte Zweck Serverauthentifizierung angezeigt. Das Zertifikat wird auf den vollqualifizierten Hostnamen des Computers ausgestellt.
  7. Starten Sie den Domänencontroller neu.

Weitere Informationen zum Erstellen einer Zertifikatsanforderung finden Sie im folgenden Whitepaper "Advanced Certificate Enrollment and Management/ Erweiterte Zertifikatsanforderung und -verwaltung": Zum Anzeigen dieses Whitepapers siehe Erweiterte Zertifikatregistrierung und -verwaltung.

Überprüfen einer LDAPS-Verbindung

Gehen Sie nach der Installation eines Zertifikats folgendermaßen vor, um sicherzustellen, dass LDAPS aktiviert ist:

  1. Starten Sie das Verwaltungsprogramm für das Active Directory (ldp.exe).

  2. Klicken Sie im Menü Verbindung auf Verbinden.

  3. Geben Sie den Namen des Domänencontrollers an, zu dem eine Verbindung hergestellt werden soll.

  4. Geben Sie 636 als Portnummer an.

  5. Klicken Sie auf OK.

    Im rechten Fenster sollten RootDSE-Informationen ausgegeben werden und eine erfolgreich hergestellte Verbindung anzeigen.

Mögliche Probleme

  • Erweiterte Anforderung „Start TLS“

    Die LDAPS-Kommunikation findet über Port "TCP 636" statt. Die LDAPS-Kommunikation mit einem globalen Katalogserver findet über TCP 3269 statt. Wenn die Verbindung zu den Ports 636 oder 3269 hergestellt wird, wird SSL/TLS ausgehandelt, bevor irgendwelcher LDAP-Verkehr ausgetauscht wird.

  • Mehrere SSL-Zertifikate

    Schannel (Microsoft-SSL-Anbieter) wählt das erste gültige Zertifikat aus, das im Speicher des lokalen Computers gefunden wird. Wenn es mehrere gültige Zertifikate im Speicher des lokalen Computers gibt, wählt Schannel möglicherweise nicht das richtige Zertifikat aus.

  • Problem beim Zwischenspeichern von SSL-Zertifikaten in Versionen vor SP3

    Wenn ein vorhandenes LDAPS-Zertifikat durch ein anderes Zertifikat ersetzt wird, weil ein neues Zertifikat verwendet werden soll oder sich die ausstellende Zertifizierungsstelle geändert hat, muss der Server neu gestartet werden, damit Schannel das neue Zertifikat verwendet.

Verbesserungen

Ursprünglich wurde in diesem Artikel empfohlen, Zertifikate im persönlichen Speicher des Computers lokal zu speichern. Diese Option wird zwar noch unterstützt, Sie können die Zertifikate aber auch im persönlichen Zertifikatspeicher des NTDS-Diensts in Windows Server 2008 und höheren Versionen von Active Directory Domain Services (AD DS) ablegen. Weitere Informationen dazu, wie Sie das Zertifikat dem persönlichen NTDS-Zertifikatsspeicher des Computers hinzufügen können, finden Sie unter Ereignis-ID 1220 - LDAP über SSL.

AD DS sucht vorwiegend in diesem Speicher nach Zertifikaten statt im Speicher unter „Lokaler Computer“. Daher lässt sich in AD DS einfacher konfigurieren, welche Zertifikate verwendet werden sollen. Dies ist so, weil im persönlichen Speicher des lokalen Computer mehrere Zertifikate gespeichert sein können und sich schwer vorhersagen lässt, welches Zertifikat ausgewählt wird.

AD DS erkennt, wenn ein neues Zertifikat im Zertifikatspeicher abgelegt wird und löst dann eine SSL-Zertifikataktualisierung aus, ohne einen Neustart von AD DS oder des Domänencontrollers zu erfordern.

Mit dem neuen rootDse-Befehl namens renewServerCertificate kann AD DS manuell gezwungen werden, seine SSL-Zertifikate zu aktualisieren, ohne dass ein Neustart von AD DS oder des Domänencontrollers erforderlich ist. Dieses Attribut kann mit adsiedit.msc oder durch Importieren der Änderung im LDIF-Format (LDAP Directory Interchange Format) mit ldifde.exe aktualisiert werden. Weitere Informationen zur Verwendung von LDIF zum Aktualisieren dieses Attributs finden Sie unter renewServerCertificate.

Zuletzt ist Folgendes zu beachten: Wenn ein Domänencontroller unter Windows Server 2008 oder neuer mehrere Zertifikate in einem Speicher findet, wählt er automatisch das Zertifikat mit der längsten Gültigkeit aus. Wenn das Ablaufdatum des aktuellen Zertifikats näher rückt, können Sie das Ersatzzertifikat im Speicher ablegen, und AD DS wechselt automatisch zu diesem Zertifikat.

Alle diese Verfahren sind in Windows Server 2008 AD DS und für 2008 Active Directory Lightweight Directory Services (AD LDS) einsetzbar. Bei AD LDS legen Sie die Zertifikate im persönlichen Zertifikatspeicher für den Dienst ab, welcher der AD LDS-Instanz entspricht, statt dem Speicher für den NTDS-Dienst.