Mail Server · 4 min read · Sep 08, 2025

Mettere in sicurezza il tuo mail server gestito da ISPConfig 3 con un certificato SSL Let's Encrypt valido

Se stai gestendo il tuo server di posta, è buona prassi connettersi ad esso in modo sicuro con una connessione SSL/TLS. Avrai bisogno di un certificato valido per queste connessioni sicure. In questo tutorial, configureremo un certificato Let’s Encrypt per il nostro server di posta che si rinnova automaticamente.

Avviso: Questo tutorial si basa su questo tutorial: https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/ ma modificato in modo da avere un certificato separato per il tuo server di posta e il pannello di controllo. Se hai seguito quel tutorial in precedenza, questo tutorial potrebbe interrompere la tua configurazione.

Questo tutorial utilizza certificati emessi da acme.sh. Se stai utilizzando certbot, segui invece questo tutorial: https://www.howtoforge.com/community/threads/securing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-ssl-certificate-certbot.86372/

Nota per ISPConfig 3.2: ISPConfig 3.2 è in grado di creare automaticamente un certificato SSL Let’s Encrypt valido per il nome host del server durante l’installazione, che viene utilizzato anche per il server di posta. Non è necessario creare manualmente un certificato SSL Let’s Encrypt come descritto qui sui sistemi ISPConfig 3.2 a meno che tu non abbia bisogno di nomi di dominio diversi nel certificato SSL oltre al nome host del server.

Requisiti

  • Il tuo server dovrebbe essere installato secondo il tutorial Perfect Server per il tuo OS.
  • Assicurati di essere connesso come utente root.

Iniziare

Utilizzerò i seguenti nomi host per il mio server di posta: mail.example.com, smtp.example.com, imap.example.com.

Sostituisci tutti i nomi host sottolineati in rosso in questo tutorial con i tuoi.

Crea i record DNS per il tuo nome host, in modo che puntino al tuo server. Questi dovrebbero essere record A (e eventualmente AAAA). Poi, nell’interfaccia ISPConfig, vai alla scheda Siti.

Emissione del certificato

Sotto Siti, fai clic su “Aggiungi nuovo sito web”. Imposta mail.example.com come dominio. Disabilita Auto-Sottodominio e seleziona la casella di controllo Let’s Encrypt.

Dopo questo puoi aggiungere i tuoi altri nomi host come domini alias, andando nell’elenco dei domini alias e facendo clic su “Aggiungi nuovo dominio alias”. Seleziona smtp.example.com come dominio e mail.example.com come sito web principale. Disabilita Auto-Sottodominio e salva il nuovo record. Ripeti questo per eventuali altri nomi host.

Verifica che il certificato sia presente. Puoi farlo con uno strumento come https://www.sslshopper.com/ssl-checker.html

Dovrebbe apparire più o meno così:

Screenshot del controllo SSL

Se i nomi host sono elencati e non ci sono altri errori, puoi procedere. Altrimenti, controlla gli errori e risolvili prima di andare avanti.

Sostituzione del certificato con il certificato Let’s Encrypt

Ora possiamo sostituire il certificato attuale con il tuo certificato di fiducia. Accedi al tuo server ed esegui questi comandi:

(sostituisci mail.example.com con il nome host che hai utilizzato per il sito web)

cd /etc/postfix/  
mv smtpd.cert smtpd.cert-$(date +"%y%m%d%H%M%S").bak  
mv smtpd.key smtpd.key-$(date +"%y%m%d%H%M%S").bak  
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.crt smtpd.cert  
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.key smtpd.key  
systemctl restart postfix  
systemctl restart dovecot

Il certificato dovrebbe ora essere utilizzato per il tuo server Postfix e Dovecot. Ma non abbiamo ancora finito! Il certificato Let’s Encrypt si rinnova ogni 60 giorni, quindi dovremmo automatizzare il processo di sostituzione del certificato in futuro, in modo da non dimenticarlo.

Noduli multiserver senza GUI ISPConfig

Se questo è un nodo senza GUI in un’installazione multiserver ISPConfig, devi ora controllare se ISPConfig stesso ha un certificato SSL. Non eseguire questo passaggio su un’installazione di server singolo o su un server che esegue una GUI ISPConfig.

Puoi eseguire il test con i seguenti comandi ls:

cd /usr/local/ispconfig/interface/ssl/  
ls ispserver.crt  
ls ispserver.key

Il risultato apparirà così se c’è già un certificato:

root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.crt  
ispserver.crt  
root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.key  
ispserver.key

Se i due comandi ls non restituiscono i file ispserver.crt e ispserver.key, allora creali come collegamenti simbolici al certificato Let’s Encrypt in questo modo:

ln -s /var/www/mail.example.com/ssl/mail.example.com-le.cer ispserver.crt  
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.key ispserver.key

Imposta uno script di rinnovo automatico

Apri un nuovo file di script:

nano /usr/local/bin/le_mailserver_restart.sh

Incolla questo nel file:

#!/bin/sh  
### BEGIN INIT INFO  
# Provides: LE MAILSERVER CERT AUTO UPDATER  
# Required-Start: $local_fs $network  
# Required-Stop: $local_fs  
# Default-Start: 2 3 4 5  
# Default-Stop: 0 1 6  
# Short-Description: LE MAILSERVER CERT AUTO UPDATER  
# Description: Riavvia il server di posta automaticamente quando viene emesso un nuovo certificato Let's Encrypt.  
### END INIT INFO  
systemctl restart postfix  
systemctl restart dovecot

Rendi lo script eseguibile:

chmod +x /usr/local/bin/le_mailserver_restart.sh

Per attivare automaticamente questo script al rinnovo, utilizzeremo systemd.

Crea e apri il nuovo servizio systemd:

nano /etc/systemd/system/le-mailserver-restart.service

Incolla questo nel file:

[Unit]   
Description="Esegui lo script per riavviare Postfix e Dovecot dopo che il certificato è stato rinnovato"  
  
[Service]  
ExecStart=/usr/local/bin/le_mailserver_restart.sh

Salva e chiudi questo file. Poi crea e apri il nuovo file di percorso systemd:

nano /etc/systemd/system/le-mailserver-restart.path

Incolla questo nel file e sostituisci mail.example.com con il nome host che hai utilizzato:

[Unit]  
Description="Monitora i file del certificato del server di posta per attivare un riavvio dei servizi e-mail dopo che i certificati sono stati rinnovati"  
  
[Path]  
PathModified=/var/www/mail.example.com/ssl/  
Unit=le-mailserver-restart.service  
  
[Install]  
WantedBy=multi-user.target

Salva e chiudi questo file. Poi avvia il servizio e abilitalo in modo che venga eseguito all’avvio:

systemctl start le-mailserver-restart.path

E abilitalo in modo che venga eseguito all’avvio:

systemctl enable le-mailserver-restart.path

E abbiamo finito!

Non funziona?

Una volta ho avuto un problema con questo, perché Let’s Encrypt utilizzava uno dei domini alias come dominio principale. Puoi trovare il dominio principale nello strumento SSL menzionato in precedenza come “Nome comune” o elencando il contenuto di /root/acme.sh/ per vedere quale dei (alias) domini ha una cartella lì.

Se hai ancora un problema, apri una discussione nel forum in modo che altri possano aiutarti.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.