Aktivieren von LDAP über SSL mit einer Drittanbieterzertifizierungsstelle

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

Ursprüngliche Produktversion:   Windows Server 2012 R2
Ursprüngliche KB-Nummer:   321051

Zusammenfassung

Ldap wird zum Lesen aus und Schreiben in Active Directory verwendet. Standardmäßig wird der Ldap-Datenverkehr ungesichert übertragen. Sie können den LDAP-Datenverkehr vertraulich und sicher machen, indem Sie ssl/Transport Layer Security (TLS)-Technologie verwenden. Sie können LDAP über SSL (LDAPS) aktivieren, indem Sie gemäß den Richtlinien in diesem Artikel ein ordnungsgemäß formatiertes Zertifikat von einer Zertifizierungsstelle von Microsoft oder von einer Nicht-Microsoft-Zertifizierungsstelle installieren.

Es gibt keine Benutzeroberfläche zum Konfigurieren von LDAPS. Die Installation eines gültigen Zertifikats auf einem Domänencontroller ermöglicht dem LDAP-Dienst, sowohl für LDAP- als auch für den globalen Katalogdatenverkehr auf DIE SSL-Verbindungen zu lauschen und diese automatisch zu akzeptieren.

Anforderungen für ein LDAPS-Zertifikat

Zum Aktivieren von LDAPS müssen Sie ein Zertifikat installieren, das die folgenden Anforderungen erfüllt:

  • Das LDAPS-Zertifikat befindet sich im persönlichen Zertifikatspeicher des lokalen Computers (programmgesteuert als "MY-Zertifikatspeicher" des Computers bekannt).

  • Ein privater Schlüssel, der dem Zertifikat entspricht, befindet sich im Speicher des lokalen Computers und ist dem Zertifikat ordnungsgemäß zugeordnet. Für den privaten Schlüssel darf kein starker Schutz durch privaten Schlüssel aktiviert sein.

  • Die Erweiterte Schlüsselverwendungserweiterung enthält die Serverauthentifizierungs-Objekt-ID (1.3.6.1.5.5.7.3.1), die auch als OID bezeichnet wird.

  • Der vollqualifizierte Active Directory-Domänenname des Domänencontrollers (z. B. DC01. DOMAIN.COM) muss an einem der folgenden Stellen angezeigt werden:

    • Der allgemeine Name (Common Name, CN) im Betrefffeld.
    • DER DNS-Eintrag in der Erweiterung "Alternativer Subject Name".
  • Das Zertifikat wurde von einer Zertifizierungsstelle ausgestellt, der der Domänencontroller und die LDAPS-Clients vertrauen. Die Vertrauensstellung wird eingerichtet, indem die Clients und der Server so konfiguriert werden, dass sie der Stammzertifizierungsstelle vertrauen, mit der die ausstellende Zertifizierungsstelle verkettet wird.

  • Verwenden Sie den #A0 (Cryptographic Service Provider, CSP), um den Schlüssel zu generieren.

Erstellen der Zertifikatanforderung

Jedes Hilfsprogramm oder jede Anwendung, das eine gültige PKCS-#10 erstellt, kann zum Erstellen der #A0 verwendet werden. Verwenden Sie Certreq, um die Anforderung zu bilden.

Certreq.exe erfordert eine Textanweisungsdatei, um eine entsprechende X.509-Zertifikatanforderung für einen Domänencontroller zu generieren. Sie können diese Datei mit Ihrem bevorzugten ASCII-Text-Editor erstellen. Speichern Sie die Datei als INF-Datei in einem beliebigen Ordner auf ihrer Festplatte.

Führen Sie die folgenden Schritte aus, um ein für LDAPS geeignetes Serverauthentifizierungszertifikat an fordern:

  1. Erstellen Sie die INF-Datei. Es folgt ein Beispiel für eine INF-Datei, die zum Erstellen der Zertifikatanforderung verwendet werden kann.

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

    [Version]

    Signature="$Windows NT$

    [NewRequest]

    Subject = "CN= <DC fqdn> " ; ersetzen Durch den FQDN des DC
    KeySpec = 1
    KeyLength = 1024
    ; Kann 1024, 2048, 4096, 8192 oder 16384 sein.
    ; Größere Schlüsselgrößen sind sicherer, haben aber
    ; eine größere Auswirkung auf die Leistung.
    Exportierbar = 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 ; Dies gilt für die Serverauthentifizierung

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

    Schneiden Sie die Beispieldatei aus, und fügen Sie sie in eine neue Textdatei namens Request.inf ein. Geben Sie den vollqualifizierten DNS-Namen des Domänencontrollers in der Anforderung an.

    Einige Zertifizierungsstellen von Drittanbietern benötigen möglicherweise zusätzliche Informationen im Parameter "Subject". Diese Informationen umfassen eine E-Mail-Adresse (E), Organisationseinheit (OU), Organisation (O), Ort oder Stadt (L), Bundesland oder Kanton (S) und Land oder Region (C). Sie können diese Informationen an den Betreffnamen (CN) in der Datei "Request.inf" anfügen. Zum Beispiel:

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

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

    certreq -new request.inf request.req
    

    Eine neue Datei mit dem Namen "Request.req" wird erstellt. Dies ist die base64-codierte Anforderungsdatei.

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

  4. Rufen Sie das ausgestellte Zertifikat ab, und speichern Sie das Zertifikat als "Certnew.cer" im selben Ordner wie die Anforderungsdatei, indem Sie die folgenden Schritte ausführen:

    1. Erstellen Sie eine neue Datei namens "Certnew.cer".
    2. Öffnen Sie die Datei im Editor, fügen Sie das codierte Zertifikat in die Datei ein, und speichern Sie die Datei.

    Hinweis

    Das gespeicherte Zertifikat muss als base64 codiert sein. Einige Zertifizierungsstelle von Drittanbietern geben das ausgestellte Zertifikat als base64-codierten Text in einer E-Mail-Nachricht an den Ansgeber zurück.

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

    certreq -accept certnew.cer
    
  6. Stellen Sie sicher, dass das Zertifikat im persönlichen Speicher des Computers installiert ist, indem Sie die folgenden Schritte ausführen:

    1. Starten Sie die Microsoft Management Console (MMC).
    2. Fügen Sie das Zertifikat-Snap-In hinzu, das Zertifikate auf dem lokalen Computer verwaltet.
    3. Erweitern Sie Zertifikate (lokaler Computer), erweitern Sie "Persönlich" und dann "Zertifikate". Im persönlichen Speicher sollte ein neues Zertifikat vorhanden sein. Im Dialogfeld "Zertifikateigenschaften" wird die Serverauthentifizierung angezeigt. Dieses Zertifikat wird für den vollqualifizierten Hostnamen des Computers ausgestellt.
  7. Starten Sie den Domänencontroller neu.

Weitere Informationen zum Erstellen der Zertifikatanforderung finden Sie im folgenden Whitepaper zur erweiterten Zertifikatregistrierung und -verwaltung. Informationen zum Anzeigen dieses Whitepapers finden Sie unter Advanced Certificate Enrollment and Management.

Überprüfen einer LDAPS-Verbindung

Führen Sie nach der Installation eines Zertifikats die folgenden Schritte aus, um sicherzustellen, dass LDAPS aktiviert ist:

  1. Starten Sie das Active Directory Administration Tool (Ldp.exe).

  2. Klicken Sie im Menü "Verbindung" auf "Verbinden".

  3. Geben Sie den Namen des Domänencontrollers ein, mit dem Sie eine Verbindung herstellen möchten.

  4. Geben Sie 636 als Portnummer ein.

  5. Klicken Sie auf OK.

    Die Informationen zu RootDSE sollten im rechten Bereich gedruckt werden, was auf eine erfolgreiche Verbindung hinweist.

Mögliche Probleme

  • Starten der erweiterten TLS-Anforderung

    Die KOMMUNIKATION über LDAP erfolgt über Port TCP 636. Die Kommunikation zwischen LDAP und einem globalen Katalogserver erfolgt über TCP 3269. Beim Herstellen einer Verbindung mit den Ports 636 oder 3269 wird SSL/TLS ausgehandelt, bevor ldap-Datenverkehr ausgetauscht wird.

  • Mehrere SSL-Zertifikate

    Schannel, der Microsoft SSL-Anbieter, wählt das erste gültige Zertifikat aus, das im lokalen Computerspeicher gefunden wird. Wenn mehrere gültige Zertifikate im lokalen Computerspeicher verfügbar sind, wählt Schannel möglicherweise nicht das richtige Zertifikat aus.

  • Problem beim Zwischenspeichern von Pre-SP3-SSL-Zertifikaten

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

Verbesserungen

Die ursprüngliche Empfehlung in diesem Artikel war, Zertifikate in den persönlichen Speicher des lokalen Computers zu speichern. Obwohl diese Option unterstützt wird, können Sie Zertifikate auch im persönlichen Zertifikatspeicher des NTDS-Diensts in Windows Server 2008 und in neueren Versionen von Active Directory Domain Services (AD DS) speichern. Weitere Informationen zum Hinzufügen des Zertifikats zum persönlichen Zertifikatspeicher des NTDS-Diensts finden Sie unter Ereignis-ID 1220 - LDAP über SSL.

AD DS sucht in diesem Speicher regelmäßig über den Speicher des lokalen Computers nach Zertifikaten. Dies erleichtert die Konfiguration von AD DS für die Verwendung des Zertifikats, das Sie verwenden möchten. Dies liegt daran, dass im persönlichen Speicher für lokale Computer möglicherweise mehrere Zertifikate gespeichert sind, und es schwierig sein kann, vorherzusagen, welches zertifikat ausgewählt ist.

AD DS erkennt, wenn ein neues Zertifikat im Zertifikatspeicher abgelegt wird, und löst dann ein Update des SSL-Zertifikats aus, ohne AD DS neu starten oder den Domänencontroller neu starten zu müssen.

Ein neuer RootDse-Vorgang mit dem Namen renewServerCertificate kann verwendet werden, um AD DS manuell auszulösen, um seine SSL-Zertifikate zu aktualisieren, ohne AD DS neu starten oder den Domänencontroller neu starten zu müssen. Dieses Attribut kann mithilfe von adsiedit.msc oder durch Importieren der Änderung im LDAP Directory Interchange Format (LDIF) mithilfe von ldifde.exe. Weitere Informationen zur Verwendung von LDIF zum Aktualisieren dieses Attributs finden Sie unter renewServerCertificate.

Wenn ein Windows Server 2008- oder ein Domänencontroller mit einer neueren Version mehrere Zertifikate im Speicher findet, wählt er automatisch das Zertifikat aus, dessen Ablaufdatum in der Zukunft am weitesten ist. Wenn ihr aktuelles Zertifikat sich dem Ablaufdatum nähert, können Sie das Ersatzzertifikat im Speicher ablegen, und AD DS wechselt automatisch zur Verwendung.

Alle diese Dienste funktionieren für Windows Server 2008 AD DS und 2008 Active Directory Lightweight Directory Services (AD LDS). Speichern Sie für AD LDS Zertifikate in den persönlichen Zertifikatspeicher für den Dienst, der der AD LDS-Instanz entspricht, und nicht für den NTDS-Dienst.