Il mail server completo e flessibile progettato per le PMI

Creare ed utilizzare un certificato SSL con Let’s encrypt

KB52042

Ultimo aggiornamento: 05 May 2023

MDaemon e certificati Let's encrypt

17.0.0

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
  • Maggiore protezione dagli attacchi Man-in-the-middle

Per lavorare in SSL/TLS occorre associare, in MDaemon, un certificato. Esistono 3 tipologie di certificati utilizzabili con MDaemon:

  1. Certificati self-signed: sono certificati generati da MDaemon stesso (uno viene creato durante l’installazione); funzionano ma non sono più accettati, in quanto non pienamente attendibili, da vari client (i dispositivi basati su iOS ad esempio), per cui è meglio scartare questa possibilità.
  2.  Certificati Let’s Encrypt: sono certificati rilasciati gratuitamente da una Certification Authority (CA) che devono essere rinnovati al massimo ogni 90 giorni.
  3. Certificati rilaciati da una Certification Authority (CA)  a pagamento. Questi certificati sono compatibili con MDaemon a patto che siano rilasciati nel formato PKCS #12.

Le operazioni necessarie per poter usare SSL/TLS in MDaemon sono:

  1. creare/acquistare il certificato.
  2. Installare il certificato in Windows.
  3. Configurare MDaemon per l’uso del certificato e dei protocolli sicuri.
  4. Rinnovare periodicamente il certificato.

Per l’installazione di un certificato rilasciato da una CA si può seguire la procedura indicata nella guida in linea di MDaemon.

Dalla versione 17 in poi, MDaemon ha introdotto il supporto ai certificati Let’s Encrypt, semplificando via via la procedura di creazione e rinnovo automatico del certificato stesso.

Pre-requisiti

Let’s encrypt ha fornito gratuitamente il codice sorgente per la generazione di questi certificati; MDaemon Technologies ha inserito lo script powershell nell’installazione di MDaemon e ne ha semplificato l’esecuzione attraverso la GUI.

Prima di creare il certificato Let’s Encrypt (dalla GUI o lanciando direttamente lo script) occorre NECESSARIAMENTE che siano verificati i seguenti requisiti:

  1. sul server dove è installato MDaemon deve essere presente la versione 5.1 o superiore di Powershell.
  2. La Webmail di MDaemon deve essere pubblicata sulla porta 80. Attenzione: questo requisito deve essere rispettato sia durante la creazione sia durante il rinnovo 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 le procedure di generazione e rinnovo lo richiedono. Per ottenere comunque sicurezza Let’s Encrypt suggerisce di redirigere il traffico http su https.
  3. La Webmail di MDaemon deve essere raggiungibile dall’esterno attraverso il nome host 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.
  4. Powershell in esecuzione in modalità “unrestricted”.
  5. MDaemon 19.5.5 o superiori in quando integrano il modulo ACME aggiornato, richiesto da Let’s Encrypt.

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:

Get-ExecutionPolicy

e, per modificarlo ad “unrestricted”:

Set-ExecutionPolicy RemoteSigned

Creazione del certificato LetsEncrypt

Per creare e configurare l’aggiornamento automatico del certificato Let’s Encrypt, apprire il menu Sicurezza > Impostazioni di sicurezza > SSL e TLS > Let’s Encrypt e fare la seguente configurazione:

Attiva aggiornamenti:
Selezionare questa casella di controllo per creare e aggiornare automaticamente una certificazione SSL/TLS mediante script di Let’s Encrypt. Il certificato viene aggiornato ogni 10-60 giorni, a seconda dell’impostazione di Frequenza aggiornamenti (10-60 giorni).

Nomi host alternativi (separare i nomi host con una virgola):
Per specificare nomi host alternativi nel certificato, specificare tali nomi host qui, separandoli con una virgola. Non è necessario includere il valore del nome host SMTP del dominio predefinito nell’elenco. Se, ad esempio, il dominio predefinito è “achab.it”, configurato con il nome host SMTP “mail.achab.it”, e si desidera utilizzare il nome host alternativo “imap.achab.it”, è sufficiente aggiungere “imap.achab.it” come nome host alternativo. Se non si desidera utilizzare alcun nome host alternativo, lasciare il campo vuoto. Nota: se si aggiungono dei nomi host alternativi, è necessario completare una richiesta di verifica HTTP da Let’s Encrypt per ognuno per convalidare il controllo del server per tali nomi host. Se le richieste di verifica non vengono completate tutte il processo non si concluderà in modo corretto.

Nome sito IIS (disponibile quando si utilizza un server di posta Web esterno):
Se si esegue Webmail mediante IIS, immettere il nome del sito IIS qui. È necessario disporre degli strumenti di Web Scripting di Microsoft installati affinché il certificato venga impostato automaticamente in IIS.

E-mail amministratore per notifiche:
Se si desidera ricevere una notifica in caso di errore durante un aggiornamento di Let’s Encrypt, specificare un indirizzo e-mail dell’amministratore qui.

Frequenza aggiornamenti (10-60 giorni):
Utilizzare questa opzione per specificare la frequenza dell’aggiornamento del certificato, da 10 a 60 giorni. Il valore predefinito è 60 giorni.

Esegui ora:
Fare clic su questo pulsante per avviare immediatamente la creazione/aggiornamento.

Esecuzione dello script di LetsEncrypt

l certificato Let’s Encrypt può essere generato anche lanciando uno script powershell direttamente. 
Nella cartella MDaemon\Letsencrypt si trova il file LetsEncrypt.ps1. Questo è lo script Powershell che proverà a:

  1. generare il certificato (il nome host utilizzato corrisponderà al nome host del dominio predefinito in MDaemon).
  2. Scaricarlo e importarlo in Windows.
  3. Configurare MDaemon per l’uso di SSL/TLS con questo certificato.

La sintassi per eseguire lo script è:o

.\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.

Nota:
Se è attiva l’opzione Attiva aggiornamenti in Sicurezza > Impostazioni di sicurezza > SSL e TLS > Let’s Encrypt, questa operazione non è necessaria.

  

New call-to-action