Schakel LDAP via SSL in met een externe certificeringsinstantie

In dit artikel wordt beschreven hoe u LDAP (Lightweight Directory Access Protocol) via Secure Sockets Layer (SSL) inschakelt met een externe certificeringsinstantie.

Van toepassing op: Windows Server 2012 R2
Origineel KB-nummer: 321051

Samenvatting

De LDAP wordt gebruikt om te lezen van en te schrijven naar Active Directory. LDAP-verkeer wordt standaard onbeveiligd verzonden. U kunt LDAP-verkeer vertrouwelijk en veilig maken door SSL/Transport Layer Security (TLS)-technologie te gebruiken. LDAP via SSL (LDAPS) kan worden ingeschakeld door een certificaat met de juiste indeling te installeren van een Microsoft-certificeringsinstantie of een niet-Microsoft-certificeringsinstantie. Gebruik hiervoor de richtlijnen in dit artikel.

Er is geen gebruikersinterface voor het configureren van LDAPS. Door een geldig certificaat te installeren op een domeincontroller kan de LDAP-service controleren op SSL-verbindingen voor zowel LDAP-verkeer als verkeer voor de globale catalogus, en deze automatisch accepteren.

Vereisten voor een LDAPS-certificaat

Als u LDAPS wilt inschakelen, moet u een certificaat installeren dat voldoet aan de volgende vereisten:

  • Het LDAPS-certificaat bevindt zich in het archief voor persoonlijke certificaten van de lokale computer (in programmering wordt hiernaar verwezen als het certificaatarchief 'My' op de computer).

    Opmerking

    Als er een certificaat in het NT Directory Services-archief (NTDS) staat, gebruikt DC in plaats daarvan het certificaat in het NTDS-archief.

  • Een persoonlijke sleutel die overeenkomt met het certificaat is aanwezig in het archief van de lokale computer en is op de juiste manier gekoppeld aan het certificaat. Voor de persoonlijke sleutel mag geen hoog beveiligingsniveau zijn ingeschakeld.

  • De extensie Uitgebreid sleutelgebruik bevat de object-id (ook wel OID genoemd) voor serververificatie (1.3.6.1.5.5.7.3.1).

  • De Fully Qualified Domain Name van Active Directory van de domeincontroller (bijvoorbeeld dc01.contoso.com) moet op een van de volgende plaatsen voorkomen:

    • De algemene naam (CN) in het veld Onderwerp.
    • DNS-vermelding in de extensie Alternatieve naam voor onderwerp.
  • Het certificaat is uitgegeven door een certificeringsinstantie die door de domeincontroller en de LDAPS-clients wordt vertrouwd. De vertrouwensrelatie wordt ingesteld door in de configuratie van de clients en de server op te geven dat de basiscertificeringsinstantie moet worden vertrouwd waarnaar de keten van de uitgevende certificeringsinstantie leidt.

  • Gebruik de cryptografische serviceprovider (CSP) Schannel om de sleutel te genereren.

De certificaataanvraag maken

Voor het opstellen van de SSL-certificaataanvraag kan elk hulpprogramma of elke toepassing worden gebruikt waarmee een geldige PKCS nr. 10-aanvraag kan worden gemaakt. In dit artikel wordt Certreq gebruikt om de aanvraag op te stellen.

Certreq.exe heeft een tekstbestand met instructies nodig om een geldige X.509-certificaataanvraag voor een domeincontroller te genereren. U kunt dit bestand maken in de ASCII-teksteditor van uw voorkeur. Sla het bestand op als INF-bestand naar een willekeurige map op de vaste schijf.

Ga als volgt te werk om een certificaat voor serververificatie aan te vragen dat geschikt is voor LDAPS:

  1. Maak het INF-bestand. Hieronder volgt een voorbeeld van een INF-bestand dat kan worden gebruikt om de certificaataanvraag te maken.

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

    [Version]

    Signature="$Windows NT$"

    [NewRequest]

    Subject = "CN=<DC fqdn>" ; vervang door de FQDN van de DC
    KeySpec = 1
    KeyLength = 1024
    ; Mogelijke waarden zijn 1024, 2048, 4096, 8192 en 16384.
    ; Grotere sleutelwaarden zijn veiliger, maar de
    ; prestaties worden hierdoor wel beïnvloed.
    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 ; deze id wordt gebruikt voor serververificatie

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

    Knip en plak het voorbeeldbestand in een nieuw tekstbestand met de naam Request.inf. Geef de volledig gekwalificeerde DNS-naam van de domeincontroller in de aanvraag op.

    Sommige certificeringsinstanties van derden hebben mogelijk aanvullende informatie nodig in de parameter Subject. Het kan bijvoorbeeld gaan om een e-mailadres (E), organisatie-eenheid (OU), organisatie (O), plaats of stad (L), staat of provincie (S), of land of regio (C). Dergelijke informatie kunt u toevoegen aan de Subject-naam (CN) in het bestand Request.inf. Bijvoorbeeld:

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

  2. Maak het aanvraagbestand door de volgende opdracht uit te voeren bij de opdrachtprompt:

    certreq -new request.inf request.req
    

    Er wordt een nieuw bestand met de naam Request.req gemaakt. Het is het base64-gecodeerde aanvraagbestand.

  3. Dien de aanvraag in bij een certificeringsinstantie. U kunt de aanvraag indienen bij een Microsoft-certificeringsinstantie of bij een certificeringsinstantie van derden.

  4. Haal het uitgegeven certificaat op en sla het certificaat vervolgens op als Certnew.cer in dezelfde map als het aanvraagbestand door deze stappen te volgen:

    1. Maak een nieuw bestand met de naam Certnew.cer.
    2. Open het bestand in Kladblok, plak het gecodeerde certificaat in het bestand en sla dit vervolgens op.

    Opmerking

    Het opgeslagen certificaat moet de base64-codering hebben. Sommige certificeringsinstanties van derden sturen het verleende certificaat terug naar de aanvrager als tekst met base64-codering in een e-mailbericht.

  5. Accepteer het uitgegeven certificaat door de volgende opdracht uit te voeren bij de opdrachtprompt:

    certreq -accept certnew.cer
    
  6. Controleer of het certificaat is geïnstalleerd in het persoonlijke archief van de computer door deze stappen te volgen:

    1. Start Microsoft Management Console (MMC).
    2. Voeg de module Certificaten toe waarmee certificaten op de lokale computer kunnen worden beheerd.
    3. Vouw achtereenvolgens Certificaten (Lokale computer), Persoonlijk en Certificaten uit. In het archief Persoonlijk moet een nieuw certificaat staan. In het dialoogvenster Eigenschappen voor certificaat is Verificatie van de server aangegeven als beoogd certificaatdoeleinde. Dit certificaat wordt verleend aan de volledige hostnaam van de computer.
  7. Start de domeincontroller opnieuw.

Raadpleeg het artikel 'Advanced Certificate Enrollment and Management' voor meer informatie over het maken van de certificaataanvraag. Raadpleeg Geavanceerde certificaatinschrijving en -beheer om dit whitepaper weer te geven.

Een LDAPS-verbinding verifiëren

Voer na het installeren van een certificaat de volgende stappen uit om te verifiëren of LDAPS is ingeschakeld:

  1. Start het Active Directory-beheerprogramma (Ldp.exe).

  2. Klik op Verbinden in het menu Verbinding.

  3. Typ de naam van de domeincontroller waarmee u een verbinding tot stand wilt brengen.

  4. Typ de waarde 636 voor het poortnummer.

  5. Klik op OK.

    In het rechterdeelvenster moeten RootDSE-gegevens worden vermeld, waarmee een geslaagde verbinding wordt aangegeven.

Mogelijke problemen

  • Uitgebreide aanvraag Start TLS

    LDAPS-communicatie vindt plaats via poort TCP 636. LDAPS-communicatie naar een GC-server vindt plaats via poort TCP 3269. Bij verbinden met de poorten 636 of 3269 wordt eerst SSL/TLS vastgesteld, vooraleer enig LDAP-verkeer plaatsvindt.

  • Meerdere SSL-certificaten

    Schannel, de SSL-provider van Microsoft, selecteert het eerste geldige certificaat dat wordt aangetroffen in het archief van de lokale computer. Als het archief van de lokale computer meer geldige certificaten bevat, is het mogelijk dat Schannel niet het juiste certificaat selecteert.

  • Probleem van vóór SP3 met in cache opslaan van certificaat door SSL-provider

    Als een bestaand LDAPS-certificaat wordt vervangen door een ander certificaat (via een vernieuwingsproces of omdat de verlenende certificeringsinstantie is gewijzigd), kan Schannel het nieuwe certificaat pas gebruiken als de server opnieuw is opgestart.

Verbeteringen

De oorspronkelijke aanbeveling in dit artikel was om certificaten in het persoonlijke archief van de lokale computer te plaatsen. Hoewel deze optie wordt ondersteund, kunt u certificaten ook in het persoonlijk archief van de NTDS-service plaatsen onder Windows Server 2008 en latere versies van AD DS (Active Directory Domain Services). Raadpleeg Gebeurtenis-ID 1220 - LDAP via SSL voor meer informatie over het toevoegen van het certificaat aan het persoonlijke certificaatarchief van de NTDS-service.

AD DS zoekt bij voorkeur naar certificaten in dit archief in plaats van in het archief van de lokale computer. Zo kunt u AD DS eenvoudiger configureren voor het gebruik van het certificaat dat u wilt gebruiken. Dit komt doordat er meerdere certificaten aanwezig kunnen zijn in het persoonlijk archief van de lokale computer en het moeilijk te voorspellen kan zijn welk certificaat wordt geselecteerd.

AD DS ontdekt wanneer een nieuw certificaat in het certificaatarchief van AD DS wordt geplaatst en activeert vervolgens een SSL-certificate-update zonder dat AD DS of de domeincontroller opnieuw hoeft te worden gestart.

Met een nieuwe rootDse-bewerking met de naam renewServerCertificate kunt u AD DS handmatig activeren om de SSL-certificaten bij te werken zonder dat AD DS of de domeincontroller opnieuw hoeft te worden gestart. Dit kenmerk kan worden bijgewerkt met adsiedit.msc of door de wijziging te importeren in LDIF-indeling (LDAP Directory Interchange Format) met behulp van ldifde.exe. Raadpleeg renewServerCertificate voor meer informatie over het gebruik van LDIF om dit kenmerk bij te werken.

Als een domeincontroller met Windows Server 2008 of een latere versie meerdere certificaten in het archief vindt, wordt er willekeurig een van deze certificaten gekozen.

Dit alles werkt voor Windows Server 2008 AD DS en voor 2008 Active Directory Lightweight Directory Services (AD LDS). Voor AD LDS plaatst u certificaten in het persoonlijke certificaatarchief voor de service die overeenkomt met het AD LDS-exemplaar in plaats van het archief voor de NTDS-service.