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ì:

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 dovecotIl 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.keyIl 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.keySe 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.keyImposta uno script di rinnovo automatico
Apri un nuovo file di script:
nano /usr/local/bin/le_mailserver_restart.shIncolla 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 dovecotRendi lo script eseguibile:
chmod +x /usr/local/bin/le_mailserver_restart.shPer attivare automaticamente questo script al rinnovo, utilizzeremo systemd.
Crea e apri il nuovo servizio systemd:
nano /etc/systemd/system/le-mailserver-restart.serviceIncolla 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.shSalva e chiudi questo file. Poi crea e apri il nuovo file di percorso systemd:
nano /etc/systemd/system/le-mailserver-restart.pathIncolla 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.targetSalva e chiudi questo file. Poi avvia il servizio e abilitalo in modo che venga eseguito all’avvio:
systemctl start le-mailserver-restart.pathE abilitalo in modo che venga eseguito all’avvio:
systemctl enable le-mailserver-restart.pathE 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.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.