Sécurité SSL · 7 min read · Sep 24, 2025
Sécuriser ISPConfig 3.1 avec un certificat SSL Let's Encrypt gratuit
IMPORTANT : Ce guide n’est pas compatible avec ISPConfig 3.2 et les versions plus récentes, car ISPConfig 3.2 et les versions ultérieures intègrent Let’s Encrypt pour tous les services. Le certificat SSL Let’s Encrypt est configuré automatiquement lors de l’installation, il n’est donc plus nécessaire de configurer Let’s Encrypt manuellement pour un service.
Auteur : ahrasis
Ce tutoriel montre comment créer et configurer un certificat SSL Let’s Encrypt gratuit pour l’interface ISPconfig (port 8080), le système de messagerie (Postfix et Dovecot/Courier), le serveur FTP (pure-ftpd) et Monit. Les commandes de ce tutoriel ont été testées sur Ubuntu 16.04, elles devraient également fonctionner pour Debian. Certaines modifications peuvent être nécessaires pour le faire fonctionner sur CentOS.
Une aide sur ce guide est disponible dans ce fil de forum.
Création d’un site Web utilisant le nom d’hôte FQDN du serveur ISPConfig
Créez un site pour votre serveur dans le panneau ISPConfig via Sites > Site Web > Ajouter un nouveau site Web. N’oubliez pas ! C’est le site Web de votre serveur et en tant que tel, il doit contenir le nom de domaine complètement qualifié (FQDN) de votre serveur. Je m’y référerai comme hostname -f dans ce guide.
hostname -fEspérons qu’il fonctionnera sans aucun changement sur votre serveur également.
Accéder au site Web ISPConfig en ligne
Vérifiez si le site de votre serveur est prêt et accessible en ligne, car Let’s Encrypt doit vérifier que votre site Web est accessible avant de délivrer la clé SSL, le certificat et le fichier de chaîne pour votre site de serveur. Vous devez également créer sa zone DNS et permettre une propagation correcte, car Let’s Encrypt doit également le vérifier.
Activer SSL pour le panneau de contrôle ISPConfig 3 (port 8080)
Si vous n’avez pas activé SSL lors de la configuration d’ISPConfig, c’est-à-dire pour son panneau de contrôle au port 8080, activez-le en tapant ispconfig_update.sh dans le terminal et sélectionnez oui pour SSL. Nous n’avons pas besoin que ce soit une clé appropriée ni que nous voulions la conserver, mais nous voulons travailler plus rapidement, donc nous pouvons simplement entrer pour tous ses champs. Lorsque vous avez terminé cela, le SSL auto-signé devrait déjà être activé pour votre ISPConfig.
Vérification de SSL pour le panneau de contrôle ISPConfig 3 (port 8080)
Vérifiez votre navigateur pour confirmer en ouvrant le panneau de contrôle ISPConfig au port 8080. Notez que vous pourriez recevoir un avertissement à ce stade, car les fichiers SSL créés sont auto-signés, mais le navigateur confirmera que votre ISPConfig a SSL activé ou non.
Sécuriser le site Web ISPConfig avec SSL Let’s Encrypt
Si ce qui précède est fait, retournez à Panneau ISPConfig > Sites > Site Web > Nom du site Web, puis cliquez sur les boutons SSL et Let’s Encrypt et enregistrez - pour créer les fichiers SSL Let’s Encrypt et les activer pour votre site de serveur. Si cela réussit, votre site de serveur utilisera maintenant ces fichiers SSL Let’s Encrypt mais pas votre page ISPConfig 8080. Si cela échoue, vous ne pourrez pas continuer, alors vérifiez son fichier journal pour un indice.
Changer le panneau de contrôle ISPConfig 3 (port 8080)
Si le SSL LE fonctionne déjà, allez dans votre terminal de serveur, passez en root via sudo su et utilisez la commande suivante pour sauvegarder et remplacer les fichiers SSL auto-signés créés par les fichiers SSL Let’s Encrypt.
cd /usr/local/ispconfig/interface/ssl/
mv ispserver.crt ispserver.crt-$(date +"%y%m%d%H%M%S").bak
mv ispserver.key ispserver.key-$(date +"%y%m%d%H%M%S").bak
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak
ln -s /etc/letsencrypt/live/$(hostname -f)/fullchain.pem ispserver.crt
ln -s /etc/letsencrypt/live/$(hostname -f)/privkey.pem ispserver.key
cat ispserver.{key,crt} > ispserver.pem
chmod 600 ispserver.pem- Si vous n’avez pas créé ispserver.pem auparavant, vous pouvez ignorer la troisième ligne qui vise à renommer l’existant, le cas échéant, en tant que sauvegarde.
- Notez que nous utilisons le dossier live de Let’s Encrypt au lieu du dossier archive.
- Notez également la dernière ligne où ispserver.pem est créé en combinant des fichiers, ainsi, il ne sera pas automatiquement renouvelé par Let’s Encrypt contrairement aux autres fichiers que nous avons simplement liés, donc nous traiterons cela dans la dernière partie de ce guide.
- Notez également que vous pouvez soit taper
hostname -fsoit server1.example.com car le résultat est le même puisquehostname -fest server1.example.com.
Utiliser les mêmes certificats SSL Let’s Encrypt pour d’autres services majeurs
Comme conseils supplémentaires, basé sur la sécurisation de votre installation ISPConfig 3, vous pouvez vouloir utiliser un lien symbolique vers ispserver.key ou .crt ou .pem au lieu de pointer directement votre postfix, dovecot, courier, pure-FTPd et monit vers les fichiers SSL Let’s Encrypt. Pour dovecot, s’il utilise déjà les fichiers SSL de postfix, il est sûr pour vous de l’ignorer. En détail, vous n’avez qu’à faire ce qui suit :
a. Pour Postfix
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 /usr/local/ispconfig/interface/ssl/ispserver.crt smtpd.cert
ln -s /usr/local/ispconfig/interface/ssl/ispserver.key smtpd.key
service postfix restart
service dovecot restartb. Pour dovecot : (* Notez que cela ne devrait pas exister avec courier)
Vérifiez si ce code existe en utilisant nano /etc/dovecot/dovecot.conf
[...]
ssl_cert = Laissez-les tels quels s’ils existent. Sinon, corrigez-les. Dans tous les cas, exécutez service dovecot restart qui est déjà couvert ci-dessus.
c. Pour courier : (* Notez que cela ne devrait pas exister avec dovecot)
cd /etc/courier/
mv imapd.pem imapd.pem-$(date +"%y%m%d%H%M%S").bak
mv pop3d.pem pop3d.pem-$(date +"%y%m%d%H%M%S").bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem imapd.pem
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pop3d.pem
service courier-imap-ssl stop
service courier-imap-ssl start
service courier-pop-ssl stop
service courier-pop-ssl startd. Pour pure-FTPd :
cd /etc/ssl/private/
mv pure-ftpd.pem pure-ftpd.pem-$(date +"%y%m%d%H%M%S").bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pure-ftpd.pem
chmod 600 pure-ftpd.pem
service pure-ftpd-mysql restarte. Pour monit : (Si vous l’avez installé sur votre serveur)
nano /etc/monit/monitrcAjoutez le lien symbolique ci-dessus vers ispserver.pem que nous avons créé pour pure-ftpd ici également :
[...]
set httpd port 2812 and
SSL ENABLE
PEMFILE /etc/ssl/private/pure-ftpd.pem
allow admin:'secretpassword'
[...]Et redémarrez monit :
service monit restartCréer un script de renouvellement automatique pour votre fichier PEM ISPConfig (ispserver.pem)
Dans cette dernière étape, que je n’ai pas trouvée dans aucun guide jusqu’à présent, est la mise à jour automatique d’ispserver.pem comme mentionné précédemment. Actuellement, il doit être changé manuellement juste après que Let’s Encrypt ait automatiquement renouvelé vos fichiers SSL de serveur. Pour éviter de négliger cela, vous pouvez vouloir installer incron comme suggéré dans le tutoriel incron respectif et créer un script pour mettre à jour automatiquement votre fichier ispserver.pem, comme suit :
Via la commande terminal, installez incron, puis créez le fichier de script et éditez-le en utilisant nano :
apt install -y incron
nano /etc/init.d/le_ispc_pem.shAjoutez ceci dans le le_ispc_pem.sh :
#!/bin/sh
### BEGIN INIT INFO
# Provides: LE ISPSERVER.PEM 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 ISPSERVER.PEM AUTO UPDATER
# Description: Met à jour ispserver.pem automatiquement après le renouvellement des certificats SSL ISPC LE.
### END INIT INFO
cd /usr/local/ispconfig/interface/ssl/
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak
cat ispserver.{key,crt} > ispserver.pem
chmod 600 ispserver.pem
chmod 600 /etc/ssl/private/pure-ftpd.pem
service pure-ftpd-mysql restart
service monit restart
service postfix restart
service dovecot restart
service nginx restart- Notez que certaines personnes n’installent pas monit, donc elles peuvent le supprimer en toute sécurité. Ajustez le script ci-dessus en conséquence.
- Pour une configuration multi-serveur, référez-vous au post #203 et ajoutez le code scp donné ici pour automatiser les mises à jour futures.
Nous le rendons exécutable, ajoutons root comme utilisateur autorisé pour incrontab et ensuite éditons le fichier incrontab :
chmod +x /etc/init.d/le_ispc_pem.sh
echo "root" >> /etc/incron.allow
incrontab -eAjoutez cette ligne dans incrontab :
/etc/letsencrypt/archive/$(hostname -f)/ IN_MODIFY ./etc/init.d/le_ispc_pem.shRedémarrer vos services
Je pense que c’est à peu près tout pour sécuriser votre serveur avec Let’s Encrypt. Vous voudrez peut-être redémarrer votre serveur Web par la suite.
service nginx restartRappelez-vous : si vous utilisez apache, changez nginx en apache2 en conséquence.
LE4ISPC
En alternative, vous pourriez vouloir utiliser le script LE4ISPC créé à cet effet qui prend en charge à la fois nginx et apache2 d’ISPConfig jusqu’à pure-ftpd ci-dessus, sauf pour monit. Avant de l’utiliser, vous devriez déjà avoir complété les étapes ci-dessus (1-5) et avoir :
- Créé le site Web pour votre serveur via ISPConfig ;
- Le site Web accessible en ligne ;
- SSL ISPConfig activé (via installation ou mise à jour) ;
- SSL LE activé avec succès pour le site Web.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.