Andrea Beggi

The spiderman is having me for dinner tonight.

Exchange 2007 e il certificato scaduto

A T T E N Z I O N E ! Questo post ha piu' di sei mesi. Le informazioni contenute potrebbero non essere aggiornate.

Dopo circa un’anno dall’installazione, scade il certificato di Exchange Server 2007. Outlook continua a funzionare, ma sul client (con Vista, su XP non ho verificato) 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.

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.

22 Commenti

Daniele | #

Il messaggio di errore lo da Outlook 2007 all’apertura, Outlook 2003 e precedenti lo ignorano. E’ comunque un messaggio non bloccante.

sirus | #

Ma non c’è la possibilità di creare un certificato privo di scadenza?

spippolazione | #

Ti tocca usare exchange ???

…mi dispiace molto 🙂

Dopo te le lavi le mani vero ? 😀

Sysadmin | #

Ottimo articolo, l’ho seguito passo passo e sono riuscito a rinnovare il certificato senza problemi, mi hai risparmiato ore e ore di ricerche ed esperimenti, GRAZIE!!

Alessandro | #

Grazie, grazie ed ancora grazie per avermi fatto trovare “LA LUCE”… PS: Mi sono permesso di postare il tuo post nel mio blog, scopiazzando il tuo, aggiornandolo ed integrandolo…. spero non ti dispiaccia! Grazie ancora.

Roberto | #

Ciao,

riesci a spiegarmi questo passaggio?

https://nomeserver/certsvr
Sul nome del server ci sono… ma invece per quanto riguarda “cersrv” fa riferimento all’opzione dell IIS?
Xe se metto tutto cosi com’è mi da “pagina scaduta”

Te lo chiedo perchè non riesco ad andare avanti..

Ho omesso qualche passaggio?

Grazie

Michele Maran | #

Salve
un piccolo suggerimento per evitare l’host name mismatch da ie o da outlook : riportate nella sezione dei nomi alternativi (Subject Alternative Names) ANCHE il nome principale del certificato. Sembra che se ciò non venga fatto il certificato non sia valido ed Outlook 1007 segnalerebbe l’errore 10 mente ie8/7 segnala non corrispondenza tra l’host ed il common name.
Grazie
Michele

Matteo Fracassetti | #

C’è un piccolo errore nella guida, credo. Il percorso corretto per richiedere il certificato dovrebbe essere “https://serverca/certsrv/” e non “https://nomeserver/certsvr”
Era mezzora che cercavo di capire perchè non mi si apriva la pagina della CA!! 😀

Grazie della guida, davvero utile.

grenzo | #

Ma come faccio a capire se un server e’ CA? Io ho un DC 2003 che con: Administrative Tools / Certification Authority parte e mi dice la validita’ del certificato,

Pero’ ho provato con:
https://nomedelserver/certsrv/

ma non trova pagina 🙁
Come posso fare?
Grazie

Alessandro | #

Ciao, ottimo post e sito! Funziona anche per Exchange 2003 o bisogna fare altri passaggi?
Grazie

Alessandro | #

Aggiungo domanda: il tool per creare la richiesta del certificato a cui tu rimandi, vale anche per Exchange 2003?
Ringrazio nuovamente

Teo e Roby | #

Con questa procedura è possibile rendere nuovamente valido un certificato autofirmato di Exchange 2007 (compreso quello che si genera automaticamente in fase di installazione del server):

Clonazione di certificati autofirmati

Se è necessario rinnovare un certificato autofirmato esistente, è possibile clonarlo eseguendo il seguente comando:

accedere alla “Exchange Management Shell”:

Get-ExchangeCertificate (visualizza certificati già presenti con relativo thumbprint univoco)

Get-ExchangeCertificate | New-ExchangeCertificate (clona il certificato esistente se, per esempio, è scaduto)

Get-ExchangeCertificate | New-ExchangeCertificate -Services SMTP,POP,IMAP (attribuisce i servizi sul certificato clonato)

Enable-ExchangeCertificate (attiva il certificato clonato che di default ha validità di 5 anni)

Teo e Roby | #

Nel pubblicare la procedura una parte dei comandi e’ stata rimossa (thumbprint).

Di seguito i comandi completi:

Con questa procedura è possibile rendere nuovamente valido un certificato autofirmato di Exchange 2007 (compreso quello che si genera automaticamente in fase di installazione del server):

Clonazione di certificati autofirmati

Se è necessario rinnovare un certificato autofirmato esistente, è possibile clonarlo eseguendo il seguente comando:

accedere alla “Exchange Management Shell”:

Get-ExchangeCertificate (visualizza certificati già presenti con relativo thumbprint univoco)

Get-ExchangeCertificate “thumbprint” | New-ExchangeCertificate (clona il certificato esistente se, per esempio, è scaduto)

Get-ExchangeCertificate “thumbprint” | New-ExchangeCertificate -Services SMTP,POP,IMAP (attribuisce i servizi sul certificato clonato)

Enable-ExchangeCertificate “thumbprint” (attiva il certificato clonato che di default ha validità di 5 anni)

Speriamo possa esservi utile!

Ciao

Max | #

Articolo chiarissimo, grazie per l’aiuto! Purtroppo però da quando ho rinnovato il certificato non si riesce più ad accedere tramite OWA….qualcuno ha avuto problemi simili?
Grazie, ciao!

Scimonji | #

Grazie ad Andrea per la gentilezza e anche a Teo e Roby che ho copiato ed ha funzionato…. in pratica invece di prolungare il certificato esistente si clona e si sostituisce il clone a quello esistente… magari meno “pura” come soluzione ma efficace e certamente più semplice e veloce.

Tommy | #

Se non si riesce più ad accedere a OWA è perchè IIS, nel binding con la porta 443 per https, ha deselezionato il certificato. Bisognerà quindi selezionare con il tasto destro il Default web site, cliccare “Modifica Binding”, modificare “https” assegnando il nuovo certificato creato con il menu a tendina.

Luca Canc | #

Ottimo articolo, una piccola aggiunta. In caso non abbiate installato la gestione web di Certification Manager (AD), per poter generare una richiesta valida (quindi associandogli il template web) potete usare il comando:

certreq -attrib “CertificateTemplate:webserver” –submit c:\cert.csr

va poi selezionata la CA (di solito selezionata di default). A questo punto se avete abilitato l’Auto-enrollment delle richieste potrete già salvare il vostro certificato da importare in exchange. In caso contrario dovrete andare nella console della CA (o tramite il comando cerutil firmare la richiesta e salvare il vostro certificato

spero di essere stato utile 😉

Spero sia utile a chi si trova in difficoltà 😉

Manuel | #

Gentilissimo Andrea e/o comunque a tutta la comunità.
In riferimento a questo articolo, vi pongo una domanda.
Ho creato il certificato e penso di aver fatto tutto bene ma nonostante ciò quando apro Outlook sui client mi esce fuori un messaggio che dice che il Certificato non ha un nome valido o non è valido il nome del sito. Ho già fatto la procedura di Enable del Thumbprint. Avete idee in merito?

Cordiali saluti a tutti!