Serveur de messagerie · 4 min read · Sep 08, 2025
Sécuriser votre serveur de messagerie géré par ISPConfig 3 avec un certificat SSL Let's Encrypt valide

Si vous exécutez votre propre serveur de messagerie, il est préférable de vous y connecter de manière sécurisée avec une connexion SSL/TLS. Vous aurez besoin d’un certificat valide pour ces connexions sécurisées. Dans ce tutoriel, nous allons configurer un certificat Let’s Encrypt pour notre serveur de messagerie qui se renouvelle automatiquement.
Avertissement : Ce tutoriel est basé sur ce tutoriel : https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/ mais modifié pour que vous ayez un certificat séparé pour votre serveur de messagerie et votre panneau de contrôle. Si vous avez suivi ce tutoriel auparavant, celui-ci pourrait casser votre configuration.
Ce tutoriel utilise des certificats délivrés par acme.sh. Si vous utilisez certbot, suivez plutôt ce tutoriel : https://www.howtoforge.com/community/threads/securing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-ssl-certificate-certbot.86372/
Note pour ISPConfig 3.2 : ISPConfig 3.2 est capable de créer automatiquement un certificat SSL Let’s Encrypt valide pour le nom d’hôte du serveur lors de l’installation, qui est également utilisé pour le serveur de messagerie. Il n’est pas nécessaire de créer manuellement un certificat SSL Let’s Encrypt comme décrit ici sur les systèmes ISPConfig 3.2, sauf si vous avez besoin de noms de domaine différents dans le certificat SSL en plus du nom d’hôte du serveur.
Prérequis
- Votre serveur doit être installé selon le tutoriel Perfect Server pour votre système d’exploitation.
- Assurez-vous d’être connecté en tant qu’utilisateur root.
Pour commencer
Je vais utiliser les noms d’hôte suivants pour mon serveur de messagerie : mail.example.com, smtp.example.com, imap.example.com.
Remplacez tous les noms d’hôte soulignés en rouge dans ce tutoriel par les vôtres.
Créez les enregistrements DNS pour votre(s) nom(s) d’hôte, afin qu’ils pointent vers votre serveur. Ceux-ci devraient être des enregistrements A (et éventuellement AAAA). Ensuite, dans l’interface ISPConfig, allez dans l’onglet Sites.
Délivrance du certificat
Sous Sites, cliquez sur “Ajouter un nouveau site web”. Définissez mail.example.com comme domaine. Désactivez Auto-Subdomain et cochez la case Let’s Encrypt.
Après cela, vous pouvez ajouter vos autres noms d’hôte en tant que domaines alias, en allant dans la liste des alias de domaine et en cliquant sur “Ajouter un nouveau domaine alias”. Sélectionnez smtp.example.com comme domaine et mail.example.com comme site parent. Désactivez Auto-Subdomain et enregistrez le nouvel enregistrement. Répétez cela pour vos autres noms d’hôte éventuels.
Vérifiez que le certificat est en place. Vous pouvez le faire avec un outil comme https://www.sslshopper.com/ssl-checker.html
Cela devrait ressembler à ceci :

Si le(s) nom(s) d’hôte sont listés et qu’il n’y a pas d’autres erreurs, vous pouvez continuer. Sinon, vérifiez les erreurs et résolvez-les avant de continuer.
Remplacer le certificat par le certificat Let’s Encrypt
Maintenant, nous pouvons remplacer le certificat actuel par votre certificat de confiance. Connectez-vous à votre serveur et exécutez ces commandes :
(remplacez mail.example.com par le nom d’hôte que vous avez utilisé pour le site 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 dovecotLe certificat devrait maintenant être utilisé pour votre serveur Postfix et Dovecot. Mais nous n’avons pas encore terminé ! Le certificat Let’s Encrypt se renouvelle tous les 60 jours, donc nous devrions automatiser le processus de remplacement du certificat à l’avenir, afin que vous ne puissiez pas l’oublier.
Nœuds multiserveurs sans interface ISPConfig
Si c’est un nœud sans interface graphique dans une configuration multiserveur ISPConfig, vous devez maintenant vérifier si ISPConfig lui-même a un certificat SSL. Ne faites pas cette étape sur une configuration de serveur unique ou un serveur qui exécute une interface graphique ISPConfig.
Vous pouvez faire le test avec les commandes ls suivantes :
cd /usr/local/ispconfig/interface/ssl/
ls ispserver.crt
ls ispserver.keyLe résultat ressemblera à ceci s’il y a déjà un certificat :
root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.crt
ispserver.crt
root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.key
ispserver.keySi les deux commandes ls ne renvoient pas les fichiers ispserver.crt et ispserver.key, alors créez-les en tant que liens symboliques vers le certificat Let’s Encrypt comme ceci :
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.keyConfigurer un script de renouvellement automatique
Ouvrez un nouveau fichier de script :
nano /usr/local/bin/le_mailserver_restart.shCollez ceci dans ce fichier :
#!/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: Redémarre le serveur de messagerie automatiquement lorsqu'un nouveau certificat Let's Encrypt est délivré.
### END INIT INFO
systemctl restart postfix
systemctl restart dovecotRendez le script exécutable :
chmod +x /usr/local/bin/le_mailserver_restart.shPour déclencher automatiquement ce script lors du renouvellement, nous allons utiliser systemd.
Créez et ouvrez le nouveau service systemd :
nano /etc/systemd/system/le-mailserver-restart.serviceCollez ceci dans ce fichier :
[Unit]
Description="Exécuter le script pour redémarrer Postfix et Dovecot après le renouvellement du certificat"
[Service]
ExecStart=/usr/local/bin/le_mailserver_restart.shEnregistrez et fermez ce fichier. Ensuite, créez et ouvrez le nouveau fichier de chemin systemd :
nano /etc/systemd/system/le-mailserver-restart.pathCollez ceci dans ce fichier et remplacez mail.example.com par le nom d’hôte que vous avez utilisé :
[Unit]
Description="Surveiller les fichiers de certificat du serveur de messagerie pour déclencher un redémarrage des services de messagerie après le renouvellement des certificats"
[Path]
PathModified=/var/www/mail.example.com/ssl/
Unit=le-mailserver-restart.service
[Install]
WantedBy=multi-user.targetEnregistrez et fermez ce fichier. Ensuite, démarrez le service et activez-le pour qu’il s’exécute au démarrage :
systemctl start le-mailserver-restart.pathEt activez-le pour qu’il s’exécute au démarrage :
systemctl enable le-mailserver-restart.pathEt nous avons terminé !
Ça ne fonctionne pas ?
J’ai eu un problème avec cela, car Let’s Encrypt a utilisé l’un des domaines alias comme domaine principal. Vous pouvez trouver le domaine principal dans l’outil SSL mentionné précédemment comme “Nom commun” ou en listant le contenu de /root/acme.sh/ pour voir lequel des (alias) domaines a un dossier là-bas.
Si vous rencontrez toujours un problème, ouvrez un fil sur le forum afin que d’autres puissent vous aider.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.