Knowledge Base

L'archivio documentale di supporto ai prodotti Achab.

KB52042 MDaemon e certificati Let's encrypt

Ultimo aggiornamento: 09/04/2019
Articolo valido per MDaemon versione: 17.0.0

Creare ed utilizzare un certificato SSL con Let's encrypt

MDaemon supporta SSL e TLS per rendere sicure le comunicazioni con i propri client e con gli host remoti.

Lavorare in SSL/TLS è consigliabile:

  • Maggiore privacy nella trasmissione dei dati
  • Protezione dagli attacchi Man-in-the-middle
Per lavorare in SSL/TLS occorre un certificato che può essere rilasciato da una Certification Authority (CA) o autogenerato da MDaemon stesso (certificato self-signed). I certificati utilizzabili in MDaemon sono quelli che prevedono il formato PKCS #12.

Le operazioni necessarie per poter usare SSL/TLS in MDaemon sono:
- creare/acquistare il certificato
- installare il certificato in Windows
- configurare MDaemon per l'uso del certificato e dei protocolli sicuri
- rinnovare periodicamente il certificato

I certificati hanno un costo (qualche centinaio di €). 

Dalla versione 17 di MDaemon è possibile creare ed utilizzare i certificati di Let's encrypt, una CA che rilascia certificati gratuiti per la crittografia TLS mediante un processo automatizzato. 
Alt-n ha integrato questa tecnologia in MDaemon dalla versione 17 per semplificare (automatizzandola completamente) la procedura di creazione e gestione dei certificati. Illustreremo di seguito come si generano e utilizzano i certificati Let's encrypt in MDaemon.

Pre-requisiti

Let's encrypt ha fornito gratuitamente il codice sorgente per la generazione di questi certificati; Alt-N ha inserito lo script powershell nell'installazione di MDaemon. Scopo dello script è automatizzare la generazione/registrazione del certificato e le configurazioni necessarie in MDaemon per il suo utilizzo.

Prima di eseguire lo script occorre verificare che:
- sulla macchina sia presente la versione 3.0 di Powershell (sono escluse quindi le macchine con Windows 2003)
- WorldClient sia in esecuzione sulla porta 80. Attenzione: questo requisito è fondamentale per la creazione del certificato. Anche se può sembrare paradossale il dover pubblicare la webmail sulla porta 80, magari perché sto creando il certificato proprio per accedere alla posta in modalità sicura, è indispensabile farlo in quanto la procedura stessa ricerca questo url. Quindi, solo per il tempo necessario a completare la generazione del certificato, se sto creando il certificato per l'host mail.achab.it, http://mail.achab.it deve essere accessibile dall'esterno e portare alla pagina di login della webmail di MDaemon.
- Powershell sia in esecuzione in modalità "unrestricted".

Se non è chiara la versione di Powershell presente sul server, è sufficiente digitare, dalla console stessa di Powershell, il seguente comando:

$host.version

che visualizzerà qualcosa di questo tipo:

Major  Minor  Build  Revision
-----  -----  -----  --------
2      0      -1     -1


(in questo esempio si sta utilizzando la versione 2.0 di Powershell)

Nota:
Su un sistema a 64 bit occorre usare la Powershell a 64 bit (Windows Powershell).

Per verificare il criterio di protezione corrente è sufficiente digitare, dalla console stessa di Powershell, il seguente comando:

cmdlet Get-ExecutionPolicy

e, per modificarlo ad "unrestricted":

Set-ExecutionPolicy RemoteSigned

Esecuzione dello script di LetsEncrypt

Nella cartella MDaemon\Letsencrypt si trova il file LetsEncrypt.ps1. Questo è lo script Powershell che proverà a:
- generare il certificato (il nome host utilizzato corrisponderà al nome host del dominio predefinito in MDaemon)
- scaricarlo e importarlo in Windows
- configurare MDaemon per l'uso di SSL/TLS con questo certificato

La sintassi per eseguire lo script è:

..\LetsEncrypt.ps1 [-AlternateHostNames] [-IISSiteName] [-To]

dove:
- il parametro AlternateHostNames è facoltativo e va utilizzato se si vogliono associare più nomi host allo stesso certificato
  (es: "-AlternateHostNames mail.domain.com,imap.domain.com,wc.domain.com")
- il parametro IISSiteName è facoltativo e va utilizzato se WorldClient sta girando sotto IIS invece che con il Web server integrato in MDaemon (es: "IISSiteName Miosito")
- il parametro To è facoltativo e va utilizzato se si vuole segnalare ad un amministratore notifiche ed eventuali errori in fase di esecuzione dello script (es: -To "admin@yourdomain.com")

Tutte le operazioni ed eventuali errori in fase di esecuzione sono registrati nel file di log

MDaemon\Logs\LetsEncrypt.log

Rinnovo del certificato

I certificati Let's encrypt scadono dopo 90 giorni. E' possibile rinnovarli con il seguente comando:

-ExecutionPolicy Bypass C:\MDaemon\LetsEncrypt\letsencrypt.ps1

Per evitare di doversi ricordare di fare questa operazione periodicamente si può automatizzare l'esecuzione dello script con il task scheduler di Windows.

Supporto tecnico

Alt-N e Achab non forniscono supporto diretto su certificati Let's Encrypt: eventuali errori durante l'esecuzione dello script possono essere segnalati sul forum pubblico (MDaemon Community Support Forum) di Alt-N. 

 
 

Questo articolo ti è stato utile?

Lasciaci un feedback

Hai trovato delle inesattezze, vorresti fare delle integrazioni all'articolo o anche solo darci un tuo parere? Scrivici liberamente utilizzando il modulo sottostante.

 

Le tue informazioni non verranno pubblicate, ma inviate privatamente al responsabile della Knowledge Base.