Un serveur web est soit un logiciel de service de ressources web (serveur HTTP), soit un serveur informatique (ordinateur) qui répond à des requêtes sur un réseau public ou privé en utilisant principalement le protocole HTTP, ou HTTPS. Caddy est un serveur web écrit en Go, open source et disponible avec HTTPS automatiquement. Il fonctionnera tout aussi bien que n'importe quel autre serveur web en Go.- Par défaut, le serveur web, Caddy sert tous les sites par HTTPS. Nul besoin d’implémenter un certificat pour la sécurité de son site. Caddy sert les adresses IP et les noms d'hôtes locaux/interne sur HTTPS en utilisant des certificats auto-signés qui sont automatiquement reconnus localement (si autorisé) ;
- Le serveur web Caddy sert également les noms DNS publics via HTTPS en utilisant des certificats d'une autorité de certification ACME publique telle que Let's Encrypt ou ZeroSSL. Exemples : exemple.com, sub.exemple.com, *.exemple.com ;
- Caddy maintient le renouvellement de tous les certificats gérés et redirige automatiquement HTTP (port 80 par défaut) vers HTTPS (port 443 par défaut).
Pour le HTTPS local, Caddy peut demander un mot de passe pour installer son certificat racine unique. Cela ne se produit qu'une fois par racine ; et il peut être supprimé à tout moment. Tout client accédant au site sans faire confiance à la racine de Caddy affichera des erreurs de sécurité.
Caddy et les noms de domaine public
Il s'agit d'exigences courantes pour tout site Web de production de base, et pas seulement pour Caddy. La principale différence est de configurer correctement les enregistrements DNS avant de lancer Caddy afin qu'il puisse fournir des certificats.
- si les enregistrements A/AAAA de votre domaine pointent vers votre serveur ;
- les ports 80 et 443 sont ouverts en externe ;
- Caddy peut se lier à ces ports (ou ces ports sont redirigés vers Caddy) ;
- le répertoire de données est accessible en écriture et persistant ;
- le nom de domaine apparaît à un endroit pertinent de la configuration.
Ainsi, comme dit précédemment, les sites seront automatiquement servis en HTTPS. L’administrateur n’a pas besoin de faire quoi que ce soit d'autre à ce sujet. Étant donné que HTTPS utilise une infrastructure partagée et publique, l’administrateur du serveur se doit de comprendre correctement le fonctionnement de Caddy afin d'éviter les problèmes inutiles, de les résoudre lorsqu'ils se produisent et de configurer correctement les déploiements avancés.
Local HTTPS
Pour servir les sites non publics via HTTPS, Caddy génère sa propre autorité de certification (AC) et l'utilise pour signer les certificats. La chaîne de confiance consiste en un certificat racine et un certificat intermédiaire. Les certificats Leaf sont signés par l'intermédiaire. Ils sont stockés dans le répertoire de données de Caddy à pki/authorities/local. L'AC locale de Caddy est alimentée par les bibliothèques Smallstep. Le HTTPS local n'utilise pas ACME et n'effectue pas de validation DNS. Il ne fonctionne que sur la machine locale et n'est fiable que là où le certificat racine de l'AC est installé.
Racine de l'autorité de certification
La clé privée de la racine est générée de manière unique à l'aide d'une source pseudo-aléatoire cryptographiquement sécurisée et persistée dans le stockage avec des autorisations limitées. Elle n'est chargée en mémoire que pour effectuer les tâches de signature, après quoi elle quitte le champ d'application pour être collectée. Bien que Caddy puisse être configuré pour signer avec la racine directement (pour supporter les clients non conformes), ceci est désactivé par défaut, et la clé racine est seulement utilisée pour signer les intermédiaires.
Après l'installation de l'autorité de certification racine de Caddy, vous la verrez dans votre magasin de confiance local sous le nom de Caddy Local Authority (à moins que vous n'ayez configuré un nom différent). Vous pouvez le désinstaller à tout moment si vous le souhaitez (la commande caddy untrust rend cela facile). Notons que l'installation automatique du certificat dans les magasins de confiance locaux est seulement pour la commodité et n'est pas garantie pour fonctionner, particulièrement si des conteneurs sont utilisés ou si Caddy est exécuté comme un service système non privilégié.
En fin de compte, si vous vous appuyez sur une PKI interne, il est de la responsabilité de l'administrateur système de s'assurer que la racine CA de Caddy est correctement ajoutée aux magasins de confiance nécessaires (ceci est en dehors de la portée du serveur web). La première fois qu'une clé racine est utilisée, Caddy essaiera de l'installer dans...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.