L’installation et la configuration d’un serveur web revêtent une importance cruciale pour assurer le bon fonctionnement et la sécurité d’un site. Dans le cas spécifique d’Ubuntu 16.04, l’utilisation de Caddy comme serveur web présente des avantages notables en termes de simplicité de configuration et de gestion des certificats SSL.
Caddy est un serveur web moderne et facile à configurer, connu pour son utilisation conviviale et son support intégré de Let’s Encrypt, qui permet de sécuriser automatiquement les connexions avec des certificats SSL. Voici un guide détaillé pour installer et configurer Caddy sur votre système Ubuntu 16.04.

-
Mise à jour du système :
Avant d’installer de nouveaux logiciels, il est recommandé de mettre à jour votre système pour garantir que vous disposez des dernières mises à jour de sécurité et des packages requis. Utilisez les commandes suivantes dans votre terminal :bashsudo apt update sudo apt upgrade
-
Téléchargement de Caddy :
Vous pouvez télécharger la dernière version stable de Caddy directement depuis le site officiel. Utilisez la commande suivante pour télécharger l’exécutable Caddy :bashwget https://caddyserver.com/download/linux/amd64 -O caddy
-
Attribution des autorisations :
Assurez-vous que l’exécutable Caddy dispose des autorisations nécessaires pour être exécuté en tant que serveur web. Utilisez la commande suivante pour attribuer les autorisations d’exécution :bashchmod +x caddy
-
Déplacement de l’exécutable :
Il est recommandé de déplacer l’exécutable Caddy dans un répertoire accessible du système, par exemple, /usr/local/bin. Utilisez la commande suivante pour effectuer ce déplacement :bashsudo mv caddy /usr/local/bin/
-
Création d’un utilisateur non privilégié :
Pour des raisons de sécurité, il est judicieux de créer un utilisateur dédié pour exécuter le serveur Caddy. Utilisez la commande suivante pour créer un utilisateur nommé « caddy » :bashsudo adduser --system --group --disabled-password --home /var/lib/caddy --shell /sbin/nologin --gecos "Caddy web server" caddy
-
Configuration du dossier des sites :
Créez le répertoire où vous stockerez les fichiers de vos sites web. Par exemple, vous pouvez utiliser /var/www. Assurez-vous que l’utilisateur « caddy » a les autorisations nécessaires sur ce répertoire :bashsudo mkdir -p /var/www sudo chown caddy:caddy /var/www
-
Configuration de Caddyfile :
Caddy utilise un fichier de configuration appelé « Caddyfile » pour définir la manière dont le serveur web doit fonctionner. Créez ce fichier dans le répertoire /etc/caddy avec la commande suivante :bashsudo nano /etc/caddy/Caddyfile
Ajoutez ensuite votre configuration personnalisée. Par exemple, pour un site web statique, vous pouvez utiliser :
plaintextvotre-domaine.com { root * /var/www file_server }
Sauvegardez le fichier et quittez l’éditeur.
-
Configuration du service Caddy :
Créez un fichier de service pour Caddy dans le répertoire /etc/systemd/system. Utilisez la commande suivante pour créer le fichier :bashsudo nano /etc/systemd/system/caddy.service
Ajoutez le contenu suivant :
plaintext[Unit] Description=Caddy HTTP/2 web server Documentation=https://caddyserver.com/docs/ After=network.target [Service] User=caddy Group=caddy ExecStart=/usr/local/bin/caddy run --environ --config /etc/caddy/Caddyfile ExecReload=/usr/local/bin/caddy reload --config /etc/caddy/Caddyfile TimeoutStopSec=5s LimitNOFILE=4096 LimitNPROC=512 AmbientCapabilities=CAP_NET_BIND_SERVICE [Install] WantedBy=multi-user.target
Enregistrez le fichier et quittez l’éditeur.
-
Démarrage et activation du service Caddy :
Utilisez les commandes suivantes pour démarrer et activer le service Caddy afin qu’il démarre automatiquement avec le système :bashsudo systemctl start caddy sudo systemctl enable caddy
-
Vérification du statut du service :
Vérifiez le statut du service Caddy pour vous assurer qu’il fonctionne correctement en utilisant la commande suivante :bashsudo systemctl status caddy
Si tout est configuré correctement, vous devriez voir un message indiquant que le service est actif et en cours d’exécution.
-
Configuration des pare-feu :
Si vous avez un pare-feu activé sur votre serveur, assurez-vous de permettre le trafic HTTP et HTTPS. Utilisez les commandes suivantes pour ouvrir les ports 80 et 443 :bashsudo ufw allow 80/tcp sudo ufw allow 443/tcp
N’oubliez pas d’actualiser le pare-feu après avoir effectué ces modifications :
bashsudo ufw reload
-
Test du site web :
Accédez à votre site web en utilisant le navigateur en spécifiant votre domaine (ou l’adresse IP du serveur). Vous devriez voir votre site web configuré avec Caddy.
En suivant ces étapes, vous avez installé et configuré avec succès le serveur web Caddy sur votre système Ubuntu 16.04. N’oubliez pas de personnaliser davantage la configuration en fonction des besoins spécifiques de votre site web. Caddy offre une flexibilité significative pour gérer divers types de sites, des sites statiques aux applications web dynamiques.
Plus de connaissances
L’installation et la configuration d’un serveur web Caddy sur Ubuntu 16.04 offrent un ensemble de fonctionnalités avancées et une approche conviviale pour la gestion des sites web. Caddy se distingue par son modèle de configuration simplifié, son support intégré de Let’s Encrypt pour les certificats SSL, ainsi que sa capacité à gérer automatiquement les redirections HTTPS. Explorons plus en détail certains aspects essentiels de cette mise en place.
Architecture de Caddy :
Caddy adopte une approche unique en matière de configuration grâce à son fichier central appelé « Caddyfile ». Ce fichier offre une syntaxe claire et concise, permettant aux utilisateurs de définir facilement la configuration de leurs sites. Chaque bloc de configuration dans le Caddyfile représente un site web distinct et peut être étendu pour inclure des directives spécifiques, telles que la gestion des fichiers statiques, la configuration du proxy inverse, et bien d’autres.
Support de Let’s Encrypt :
Caddy simplifie grandement le processus d’obtention et de renouvellement des certificats SSL grâce à son intégration native avec Let’s Encrypt. Lorsqu’un site est configuré pour utiliser HTTPS dans le Caddyfile, le serveur génère automatiquement et configure un certificat SSL valide. Cette automatisation contribue à renforcer la sécurité des communications web sans nécessiter d’interventions manuelles fréquentes.
Prise en charge de la gestion des fichiers statiques :
Caddy simplifie la diffusion de fichiers statiques en permettant aux utilisateurs de définir des configurations de serveur web sans avoir besoin de modules supplémentaires. Par exemple, dans le Caddyfile fourni précédemment, la directive file_server
permet au serveur de servir les fichiers statiques du répertoire spécifié. Cette fonctionnalité est particulièrement utile pour les sites web ne nécessitant pas de backend dynamique.
Configuration du proxy inverse :
Pour les applications web dynamiques, Caddy facilite la configuration du proxy inverse. Cette fonctionnalité permet de rediriger les requêtes vers un serveur backend, souvent utilisé pour les applications basées sur des frameworks tels que Node.js, Flask, Django, etc. Les utilisateurs peuvent spécifier cette configuration dans le Caddyfile, simplifiant ainsi le déploiement d’applications web complexes.
Gestion des mises à jour avec systemd :
Caddy s’intègre harmonieusement avec systemd, le système d’initialisation d’Ubuntu. Le fichier de service créé précédemment dans /etc/systemd/system/caddy.service
définit la manière dont Caddy sera géré en tant que service système. Cette intégration permet de bénéficier des fonctionnalités de gestion de processus et de journalisation fournies par systemd.
Sécurisation avec un utilisateur non privilégié :
La création d’un utilisateur système dédié, tel que l’utilisateur « caddy » dans notre exemple, renforce la sécurité du serveur web. En attribuant des autorisations minimales à cet utilisateur, le risque potentiel résultant d’une compromission du serveur est réduit. Cela contribue à suivre les meilleures pratiques en matière de sécurité informatique.
Maintenance et Débogage :
Caddy propose des commandes de ligne de commande utiles pour faciliter la maintenance et le débogage. Par exemple, la commande caddy reload
permet de recharger la configuration du serveur sans arrêter le processus, facilitant ainsi la mise en œuvre de changements de configuration sans interruption de service. Le fichier journal de Caddy peut également être consulté pour suivre les événements et les erreurs éventuelles.
Gestion du Pare-feu avec UFW :
La configuration du pare-feu, illustrée dans les étapes, est une étape essentielle pour garantir la sécurité du serveur. En autorisant explicitement les ports 80 (HTTP) et 443 (HTTPS), Caddy peut communiquer avec le monde extérieur. L’utilisation d’UFW (Uncomplicated Firewall) simplifie la configuration du pare-feu et offre une couche de sécurité supplémentaire.
Possibilités d’Expansion :
Caddy offre des possibilités d’expansion en intégrant des plugins tiers pour étendre ses fonctionnalités. Ces plugins peuvent être facilement intégrés dans le Caddyfile, permettant aux utilisateurs d’ajouter des fonctionnalités spécifiques à leurs besoins, que ce soit la compression d’images, la sécurisation avancée, ou d’autres capacités personnalisées.
En conclusion, l’installation et la configuration d’un serveur web Caddy sur Ubuntu 16.04 offrent une solution moderne et conviviale pour héberger des sites web. La simplicité de configuration, le support intégré de Let’s Encrypt, la gestion des fichiers statiques, la configuration du proxy inverse et d’autres fonctionnalités font de Caddy un choix attrayant pour les utilisateurs cherchant une solution web robuste et sécurisée. La combinaison de ces éléments assure une expérience de déploiement web fluide et efficace, tout en offrant une base solide pour les besoins futurs de votre infrastructure web.