Abilitare di LDAP su SSL con un'autorità di certificazione di terze parti
Questo articolo descrive come abilitare LDAP (Lightweight Directory Access Protocol) su SSL (Secure Sockets Layer) con un'autorità di certificazione di terze parti.
Numero KB originale: 321051
Riepilogo
LDAP (Lightweight Directory Access Protocol) viene utilizzato per leggere e scrivere in Active Directory, viene trasmesso per impostazione predefinita in modalità non protetta. È tuttavia possibile rendere riservato e proteggere il traffico LDAP utilizzando la tecnologia SSL (Secure Sockets Layer) / TLS (Transport Layer Security). È possibile abilitare il protocollo LDAP su SSL (LDAPS) installando un certificato debitamente formattato da un'autorità di certificazione (CA) Microsoft o di terze parti, attenendosi alle istruzioni fornite in questo articolo.
Non esiste alcuna interfaccia utente per configurare LDAPS. L'installazione di un certificato valido su un controller di dominio consente al servizio LDAP di stare in ascolto e accettare automaticamente connessioni SSL sia per il traffico LDAP che per il traffico di catalogo globale.
Requisiti per un certificato LDAPS
Per abilitare LDAPS è necessario installare un certificato che soddisfi i seguenti requisiti:
Il certificato LDAPS si trova nell'archivio del certificati personali del computer locale (conosciuto a livello programmatico come MY certificate store del computer).
Note
Se è presente un certificato nell'archivio NT Directory Services (NTDS), il controller di dominio usa invece il certificato nell'archivio NTDS.
Nell'archivio del computer locale è presente una chiave privata correttamente associata al certificato. La chiave privata non deve avere la protezione avanzata della chiave privata attivata.
L'estensione Utilizzo chiavi avanzato include l'identificatore di oggetto (OID) Autenticazione server (1.3.6.1.5.5.7.3.1).
Il nome di dominio completo Active Directory del controller di dominio, ad esempio dc01.contoso.com, deve essere visualizzato in una delle seguenti posizioni:
- Il Nome comune (CN) presente nel campo Oggetto.
- La voce DNS presente nell'estensione Nome alternativo oggetto.
Il certificato è stato rilasciato da un'autorità di certificazione considerata attendibile dal controller di dominio e dai client LDAPS. La relazione di trust viene stabilita configurando i client e il server affinché considerino attendibile l'autorità di certificazione principale a cui appartiene l'autorità di certificato che emette il certificato.
È necessario utilizzare il provider del servizio di crittografia (CSP) Schannel per generare la chiave.
Creare la richiesta di certificato
Per creare la richiesta di certificato SSL è possibile utilizzare qualsiasi utilità o applicazione che consenta di creare una richiesta PKCS #10 valida. Utilizzare Certreq per creare la richiesta.
Certreq.exe richiede un file di istruzioni di testo per generare una richiesta di certificato X.509 appropriata per un controller di dominio. È possibile creare questo file utilizzando qualsiasi editor di testo ASCII. Salvare il file con estensione inf in qualsiasi cartella sul disco rigido.
Per richiedere un certificato di autenticazione server adatto per LDAPS, attenersi alla procedura seguente:
Creare il file inf. Di seguito è riportato un esempio di file inf che è possibile utilizzare per creare la richiesta di certificato.
;----------------- request.inf -----------------
[Version]
Signature="$Windows NT$"
[NewRequest]
Subject = "CN=<DC fqdn>" ; sostituire con l'FQDN del controller di dominio
KeySpec = 1
KeyLength = 1024
; Can be 1024, 2048, 4096, 8192, or 16384.
; Larger key sizes are more secure, but have
; a greater impact on performance.
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 ; this is for Server Authentication
;-----------------------------------------------
Tagliare e incollare il file campione in un nuovo file di testo chiamato Request.inf. Nella richiesta fornire il nome DNS completo del controller di dominio.
Alcune autorità di certificazione di terze parti potrebbero richiedere ulteriori informazioni nel parametro Subject. Tali informazioni possono includere un indirizzo di posta elettronica (E), l'unità organizzativa (OU), l'organizzazione (O), la località o la città (L), la provincia (S) e la nazione (C). È possibile aggiungere queste informazioni al nome Subject (CN) nel file Request.inf. Ad esempio:
Subject="E=admin@contoso.com, CN=<DC fqdn>, OU=Servers, O=Contoso, L=Redmond, S=Washington, C=US."
Creare il file di richiesta eseguendo il comando seguente al prompt dei comandi:
certreq -new request.inf request.req
Un nuovo file chiamato Request.req viene creato. Questo è il file della richiesta codificata base64.
Inviare la richiesta a un'autorità di certificazione Microsoft o di terze parti.
Recuperare il certificato emesso e salvarlo come Certnew.cer nella stessa cartella in cui si trova il file della richiesta secondo i seguenti passaggi:
- Creare un nuovo file denominato Certnew.cer.
- Aprire il file nel Blocco note, incollarvi il certificato codificato e salvare il file.
Note
Il certificato salvato deve essere codificato come base64. Alcune autorità di certificazione di terze parti restituiscono il certificato emesso sotto forma di testo codificato in base 64 all'interno di un messaggio di posta elettronica.
Accettare il certificato emesso eseguendo il comando seguente al prompt dei comandi:
certreq -accept certnew.cer
Verificare che il certificato sia installato nell'archivio personale del computer seguendo questi passaggi:
- Avviare Microsoft Management Console (MMC).
- Aggiungere lo snap-in Certificati che gestisce i certificati nel computer locale.
- Espandere Certificati (Computer locale), espandere Personale, e infine espandere Certificati. Nell'archivio Personale deve esistere un nuovo certificato. Nella finestra di dialogo Proprietà Certificato, viene visualizzato lo scopo designato Autenticazione Server. Questo certificato viene rilasciato al nome host completo del computer.
Riavviare il controller di dominio.
Per ulteriori informazioni sulla creazione della richiesta di certificato, vedere il white paper Advanced Certificate Enrollment and Management Per visualizzare questo white paper, consultare Registrazione e gestione avanzata dei certificati.
Verificare una connessione LDAPS
Dopo che un certificato viene installato, seguire questi passaggi per verificare che il LDAPS sia aabilitato:
Avviare lo strumento di amministrazione di Active Directory (Ldp.exe).
Dal menu Connessione, scegliere Connetti.
Digitare il nome del controller di dominio a cui connettersi.
Digitare 636 come numero di porta.
Scegliere OK.
Nel riquadro destro dovrebbero essere visualizzate le informazioni RootDSE a conferma dell'avvenuta connessione.
Possibili problemi
Avvio della richiesta estesa TLS
La comunicazione LDAPS avviene tramite la porta TCP 636. La comunicazione LDAPS per un server di catalogo globale avviene su TCP 3269. Quando ci si connette alle porte 636 o 3269, il SSL/TLS viene negoziato prima che qualsiasi traffico LDAP venga scambiato.
Più certificati SSL
Schannel, il provider SSL Microsoft, seleziona il primo certificato valido che trova nell'archivio del computer locale. Se esistono più certificati validi disponibili nell'archivio del computer locale, è possibile che Schannel non selezioni il certificato corretto.
Problemi di salvataggio nella cache dei certificati SSL precedenti a SP3
Se un certificato LDAPS esistente viene sostituito con un altro certificato tramite un processo di rinnovamento o perché l'autorità di certificazione emittente è cambiata, il server deve essere riavviato affinché Schannel utilizzi il nuovo certificato.
Miglioramenti
Il suggerimento originale in questo articolo era quello di mettere i certificati nell’archivio personale del computer locale. Anche se questa opzione è supportata, i certificati possono anche essere messi nel NTDS del servizio Archivio certificati personali su Windows Server 2008 e in versioni successive di Servizi di dominio Active Directory (AD DS). Per ulteriori informazioni su come aggiungere il certificato all'NTDS del servizio Archivio certificati personali, consultare Event ID 1220 - LDAP e SSL.
L’AD DS preferisce cercare i certificati in questo archivio piuttosto che nell’archivio del computer locale. Questo rende più facile configurare l’AD DS in modo che usi il certificato che si desidera utilizzare. Questo è perché ci potrebbero essere diversi certificati nell’archivio personale del computer locale e può essere difficile prevedere quale venga selezionato.
L’AD DS rileva quando un nuovo certificato viene immesso nel proprio archivio certificati e quindi innesca un aggiornamento dei certificati SSL senza dover riavviare l’AD DS o il controller di dominio.
Una nuova operazione di rootDse chiamata renewServerCertificate può essere usata per attivare manualmente l’aggiornamento dei certificati SSL da parte dell’AD DS senza dover riavviare l’AD DS o il controller di dominio. Questo attributo può essere aggiornato utilizzando adsiedit.msc, o importando il cambiamento in LDAP Directory Interchange Format (LDIF) utilizzando ldifde.exe. Per altre informazioni sull'uso di LDIF per aggiornare questo attributo, vedere renewServerCertificate.
Infine, se un controller di dominio di Windows Server 2008 o versione successiva trova più certificati nel relativo archivio, sceglierà casualmente uno di questi certificati.
Tutti questo funziona nell’AD DS di Windows Server 2008 e nell’Active Directory Lightweight Directory Services (AD LDS) 2008. Per AD LDS, mettere i certificati nell'archivio certificati personali per il servizio che corrisponde all’istanza di AD LDS anziché per il servizio NTDS.