Exchange 2007 certificate nightmare … (un vero incubo)

0 comments

Posted on 16th October 2009 by Spiandore Alessandro in software

, , , , , ,

Tutto comincia con il messaggio di certificato scaduto che i miei client (outlook 2007) hanno cominciato a darmi di punto in bianco, prosegue poi che durante le ultime installazioni di Small Business Server 2008 (SBS2008) ho incontrato difficoltà nella generazione di certificati validi per sostenere la comunicazione SSL fra Exchange 2007 e Outlook 2007 con conseguenti messaggi d’errore sui client (sia essi Vista che XP) :(

Ravanando su internet trovo questo post di Andrea Beggi (mitico!) che m’illumina e che mi permetto di riportare sul mio blog aggiornandolo ed aggiungendo qualche passaggio… PS: Leggere tutto il post prima di cominciare a fare disastri… :)

Dopo circa un’anno dall’installazione, scade il certificato di Exchange Server 2007.
Outlook continua a funzionare, ma sul client (sia Vista che XP) appare un fastidioso messaggio che segnala come non più valido il certificato del server di posta.
Se, come spesso accade, il vostro certificato è self-signed, cioè non emesso da una autorità di certificazione (non lo avete pagato), è necessario prima generare una richiesta e poi emettere un nuovo certificato basato su quest’ultima.

La richiesta si genera dalla Management Shell di Exchange 2007, tramite il commandlet New-ExchangeCertificate.

La sintassi non è complicatissima, comunque ho trovato questo strumento online che la genera per noi. Otterremo una cosa simile a:

New-ExchangeCertificate -GenerateRequest -Path c:\xxxx.csr -KeySize 1024 -SubjectName “c=IT, s=Italy, l=Genoa, o=Xxxxx S.p.A., cn=xxxx.yyyy.zzzz” -DomainName tttt.rrrr.vvvv -PrivateKeyExportable $True (inserite anche il nome DNS nel box Subject Alternative Names, se il server è pubblicato su Internet.)

Apriamo una Exchange Management Shell e incolliamo il comando, il quale genera la richiesta e la mette nel file c:\xxxx.csr.

A questo punto se non avete già un server CA (CAS: Certificate Authority Server) sulla vostra rete, lo dovete installare. Si fa tranquillamente dal Pannello di Controllo –> Installazione Applicazioni –> Installazione Componenti di Windows. Fatelo sul server Exchange 2007, è più comodo e passi successivi presumono che il server sia uno solo. PS1: Su Windows 2008 selezionare entrambi i componenti. PS2: Bisogna riavviare il server perchè digerisca tutto… :)

Terminata l’installazione, accedete a https://nomeserver/certsvr, cliccate Request a certificate, poi Advanced certificate request, poi Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file. Copiate il contenuto del file c:\xxxx.csr nel box Saved Request, selezionate Web Server in Certificate Template, e cliccate su Submit. Scaricate il certificato dalla schermata successiva e salvate il file .cer in c:\.

A questo punto, sempre dalla Management Shell di Exchange 2007, impartite il comando:

import-exchangecertificate -path c:\certnew.cer | enable-exchangecertificate -services iis

e premete invio.

Se tutto è andato a buon fine, potete controllare tramite la gestione di IIS che il certificato sia installato correttamente. Naturalmente il nostro server non è considerato attendibile come autorità di certificazione, il certificato va inserito nel repository delle fonti attendibili sul client. (Forse viene fatto automaticamente al reboot dei client.)

Aggiornamento: dopo poco tempo nell’application log è apparso l’errore 12014, ricorrente ogni mezz’ora circa; l’avviso lamenta la mancanza di un certificato che contenga il nome specificato nel campo FQDN del connettore SMTP in uscita. Ad una prima analisi sembra che ciò non sia vero, in realtà bisogna controllare il campo “Identificazione Personale” nei dettagli del certificato e annotare il relativo valore. Dopodiché tramite Management Shell di Exchange, impartire il seguente comando:

Enable-ExchangeCertificate -Thumbprint 3afd24627925332cd096f45eb5b4473c72526112 -Services “SMTP”

sostituendo il valore Thumbprint qui indicato con quello precedentemente annotato dai dettagli del certificato.

https://www.digicert.com/easy-csr/exchange2007.htm

Enable-ExchangeCertificate weird error PkixKpServerAuthNotFoundInEnhancedKeyUsage

certutil -repairstore my “”

Certificate Use in Exchange Server 2007

PrivateKeyMissing when running Enable-ExchangeCertificate

e per finire il link di Andrea Beggi (… si ancora!!) senza il quale forse avrei perso qualche notte di sonno… grazie Andrea!!!

Exchange 2007 e il certificato scaduto

Windows cannot access the file gpt.ini for GPO – Error ID 1058

0 comments

Posted on 5th October 2009 by Spiandore Alessandro in software

, , , , , , , ,

Sintomi:

- Non si riescono più a sfogliare le path in condivisione su di un server Windows 2000 e/o 2003 (quasi sempre un Domain Controller).

- Sul registro eventi compare il seguente messaggio d’errore:
Windows cannot access the file gpt.ini for GPO CN={GUID},CN=Policies,CN=System,DC=Domain,DC=com. The file must be present at the location < \\Domain.com\sysvol\Domain.com\Policies\{GUID}\gpt.ini>. (The network
path was not found. ). Group Policy processing aborted.

- Se si tenta di applicare il comando “gpupdate /force” …. viene eseguito in modo fulmineo, sul registro eventi ricompaiono gli errori “Userevent” come prima… di solito 4 volte!

- Altri vari malfunzionamenti.

Soluzione:

- Molto probabilmente il server DNS (a cui ovviamente sono collegate le Active Directory) non è ben configurato…. controllare se esiste la “Zona di ricerca inversa” della rete su cui insiste il DNS… altrimenti crearla. Controllare se esiste il Puntatore PTR del server DNS stesso…. altrimenti crearlo partendo dal record Host (A) di ricerca diretta, spuntare il relativo flag ed aggiornare il tutto.

- Accertarsi di avere tutti i Services Pack in ordine e tutti gli aggiornamenti del caso.

- Aggiornare la seguente chiave di registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Se manca la chiave: WaitForNetwork aggiungerla in formato DWORD con il valore a “1″.

- Dal CD di supporto di Windows 2003 Server installare i “Support Tools”: \\Support\Tolls\Suptools.msi per avere a disposizione il seguente comando: dfsutil /PurgeMupCache.

- Riavviare il servizio “Server DNS”

- Eseguire il comando “gpupdate /force” … ora dovrebbe impiegare un pò di tempo (minimo, ma non più fulmineo) e riportare il valore di successo.

- Riavviare il server

Dovrebbe funzionare tutto! :) :) :)

Per referenza: http://support.microsoft.com/kb/842804/en-us