
Compétences évaluées
- Répondre aux incidents et aux demandes d’assistance et d’évolution
- Mettre à disposition des utilisateurs un service informatique
Contexte
Octave Solutions, une entreprise en pleine croissance dans le domaine des services numériques, cherche à optimiser son infrastructure. Dans cette optique, elle envisage de déployer une autorité de certification interne pour gérer les certificats numériques. De plus, un reverse proxy HAProxy sera installé pour améliorer la gestion du flux de données internes. Ces initiatives visent à renforcer l'efficacité opérationnelle de l'entreprise tout en garantissant une gestion fluide de son infrastructure en croissance.
Présentation des solutions
Windows Serveur Certificate Autority
Windows Server Certificate Authority (CA) est une infrastructure de gestion de certificats numériques intégrée à l'écosystème Windows Server. Elle permet de sécuriser les communications et d'authentifier les utilisateurs, les dispositifs et les services au sein d'un réseau d'entreprise.
Fonctionnalités clés :
- Émission centralisée de certificats : Crée et distribue des certificats numériques conformes aux normes de sécurité, assurant ainsi l'authenticité des entités sur le réseau.
- Gestion des politiques de sécurité : Configuration de politiques de sécurité pour contrôler l'émission des certificats et garantir leur conformité aux exigences de l'entreprise.
- Support des infrastructures à clé publique (PKI) : Permet la mise en place de hiérarchies de certificats pour répondre aux besoins spécifiques de l'organisation en matière de sécurité.
- Validation et révocation des certificats : Vérification de la validité des certificats et révocation en cas de compromission, assurant ainsi la fiabilité des communications.
HAProxy
HAProxy est une solution open-source de reverse proxy et de load balancer utilisée pour optimiser les performances, la fiabilité et la sécurité des serveurs web. Il est largement adopté par les entreprises pour gérer le trafic entrant vers les serveurs web et assurer une expérience utilisateur optimale.
Fonctionnalités clés de HAProxy :
- Répartition de charge : Équilibre la charge du trafic entrant sur plusieurs serveurs web, améliorant ainsi les performances et la disponibilité des applications.
- Gestion du trafic : Routage intelligent du trafic vers les serveurs appropriés en fonction de critères tels que la charge du serveur, la disponibilité, etc.
- Terminaison SSL/TLS : Gère la terminaison SSL/TLS pour chiffrer et déchiffrer le trafic HTTPS, offrant ainsi une sécurité renforcée entre les clients et les serveurs web.
- Sécurité renforcée : Fournit des fonctionnalités avancées de sécurité telles que la limitation des requêtes, la protection contre les attaques DDoS, la gestion des certificats SSL/TLS, etc.
Procédure d'installation
Installation de ADCS sur Windows Serveur :
Avant d’installer le rôle ADCS, veillez à avoir installer IIS sur le serveur.
Pour commencer aller sur votre serveur Windows, cliquez sur « Manage », puis « Add Roles and Features »

Ensuite ajouter le rôle « Active Directory Certificate Services »

Cliquez sur « Add Features »

Puis cliquez sur « Next » jusqu’à l’installation du rôle

Cliquez sur « Post deployment configuration »

Cliquez sur « Next »

Ensuite cochez la case « Certification Authority » puis sur Next

Cochez « Root CA » puis cliquez sur Next

Créez une nouvelle clé privée

Sélectionnez une taille de clé ainsi que l’algorithme

Nommez l’autorité de certification

Choisissez une durée de validée de la clé

Indiquez l’emplacement des logs

Et validez la configuration

Installation de HAProxy sur un serveur Debian :
Afin d’installer HAProxy sur un serveur Debian 12 vous n’avez qu’a exécuter la commande suivante :
sudo apt -y install haproxy
Ensuite, démarrez le service le servie « haproxy » et activez-le afin qu’il démarre automatiquement lors d’un reboot :
systemctl start haproxy
systemctl enable haproxy
Configuration du HAPRoxy
La configuration d'un reverse proxy avec HAProxy implique plusieurs éléments clés pour diriger le trafic réseau de manière efficace et sécurisée. Voici une explication des principaux composants :
- Frontend : Le frontend définit les paramètres d'écoute pour les connexions entrantes. Cela peut inclure le protocole à utiliser (HTTP, HTTPS, TCP, etc.), le port d'écoute et éventuellement des certificats SSL/TLS pour le chiffrement. Le frontend est responsable de la réception des requêtes provenant des clients.
- Backend : Le backend représente les serveurs de destination vers lesquels le reverse proxy dirigera le trafic. Il spécifie les serveurs à contacter pour répondre aux demandes des clients. Les serveurs peuvent être pondérés pour la répartition de charge, et des stratégies de basculement peuvent être définies pour garantir la disponibilité.
- Mode de répartition de charge : HAProxy offre divers modes de répartition de charge pour distribuer les requêtes entre les serveurs backend. Cela peut inclure des algorithmes tels que la répartition de charge pondérée, la répartition de charge par round-robin, la répartition de charge basée sur le nombre de connexions, etc.
Générer une demande de certificat
Afin d’utiliser un certificat SSL lors d’une communication entre un client et le serveur Haproxy, il est nécessaire de générer une demande de certificat SSL.
Pour ce faire suivez la procédure :
Commencer par créer un fichier « config.txt » qui contiendra les informations suivantes (adaptez les informations à votre situation) :
[req]
default_bits= 2048
prompt = no
default_md= sha256
req_extensions= req_ext
distinguished_name= dn
[dn]
C=FR
L=Angers
O=End Point
CN = *.siomds.local
[req_ext]
subjectAltName= @alt_names
[alt_names]
DNS.1 = *.siomds.local
Une fois le fichier créer, exécutez les commandes suivantes :
sudo openssl genrsa -out cert.key 2048
sudo openssl req -new -key cert.key -out cert.pem -config config.txt
Un fichier « cert.pem » sera alors généré, c’est la demande de certificat.
Il faut maintenant générer la demande de certificat sur le Service de certificats Microsoft Active Directory.
Ajouter un certificat dans le HAProxy
Les certificats utilisés par HAProxy doivent être un certificat combinant à la fois la clé privée et le certificat public, au format PEM.
Pour combiner la clé publique et le certificat publique, exécuter la commande suivante :
cat cert.key cert.pem > certificat.pem
Afin d’ajouter un certificat, ajouter la ligne suivante à la suite du frontend dans votre configuration HAProxy :
frontend https-in
bind *:443 ssl crt /etc/haproxy/certificates/certificat.pem
mode http
Le certificat combinant la clé privée et le certificat publique doit être stocké dans le répertoire spécifié.
Ajouter une nouvelle entrée dans le reverse proxy
Pour ajouter un nouveau frontend et un backend à votre configuration HAProxy, suivez ces étapes :
Ajout du Frontend :
Ouvrez votre fichier de configuration HAProxy situé sous /etc/haproxy/haproxy.cfg avec un éditeur de texte.
Localisez la section frontend existante dans laquelle vous souhaitez ajouter vos nouvelles entrées. Dans ce cas, nous ajouterons les nouvelles entrées au frontend https-in.
Ajoutez les ACL et les directives de routage :
Utilisez la syntaxe suivante pour ajouter les ACL et diriger le trafic vers les nouveaux backends :
frontend https-in
bind *:443 ssl crt /etc/haproxy/certificates/cert.pem
mode http
acl is_vaultwarden hdr(host) -i vaultwarden.siomds.local
acl is_glpi hdr(host) -i glpi.siomds.local
acl is_zabbix hdr(host) -i zabbix.siomds.local
acl is_dashboard hdr(host) -i dashboard.siomds.local
acl is_freshrss hdr(host) -i freshrss.siomds.local
acl is_grafana hdr(host) -i grafana.siomds.local
acl is_newapp hdr(host) -i newapp.siomds.local # Nouvelle ACL pour la nouvelle application
use_backend serveur_vaultwarden if is_vaultwarden
use_backend serveur_glpi if is_glpi
use_backend serveur_zabbix if is_zabbix
use_backend serveur_dashboard if is_dashboard
use_backend serveur_freshrss if is_freshrss
use_backend serveur_grafana if is_grafana
use_backend serveur_newapp if is_newapp # Dirige le trafic vers le nouveau backend pour la nouvelle application
Assurez-vous de remplacer « newapp.siomds.local » par le nom de domaine approprié pour votre nouvelle application.
Ajout du Backend :
Localisez la section backend existante où vous souhaitez ajouter votre nouveau backend. Dans ce cas, nous ajouterons un backend à la fin du fichier, après les backends existants.
Utilisez la syntaxe suivante pour ajouter un nouveau backend :
backend serveur_newapp
mode http
balance roundrobin server web7 192.168.2.14:8080 check
Remplacez « serveur_newapp » par le nom que vous souhaitez donner à votre nouveau backend, web7 par un nom pour votre serveur, 192.168.2.14 par l'adresse IP de votre serveur, et 8080 par le port sur lequel votre serveur écoute.
Sauvegardez et validez :
Enregistrez les modifications apportées au fichier de configuration. Validez ensuite la configuration avec la commande haproxy -c -f /chemin/vers/votre/fichier.cfg.
Redémarrez HAProxy :
Si la validation réussit, redémarrez HAProxy pour appliquer les modifications.
Ajouter un certificat pour un hôte uniquement
Si vous souhaitez avoir plusieurs certificats dans votre configuration HAProxy, vous devez créer de nouveaux frontends et de nouveau backends.
Configuration des frontends :
frontend https-in1
bind *:443 ssl crt /chemin/vers/certificat1.pem
mode http
# ACL et règles pour le premier frontend
use_backend backend1 if condition1
# Autres ACL et règles pour le premier frontend
frontend https-in2
bind *:443 ssl crt /chemin/vers/certificat2.pem
mode http
# ACL et règles pour le deuxième frontend
use_backend backend2 if condition2
# Autres ACL et règles pour le deuxième frontend
Configuration des backends :
backend backend1
mode http
balance roundrobin
server server1 192.168.1.10:80 check
# Autres serveurs pour le backend1 si nécessaire
backend backend2
mode http
balance roundrobin
server server2 192.168.1.11:80 check
# Autres serveurs pour le backend2 si nécessaire
Explications :
frontend https-in1 : Le premier frontend.
frontend https-in2 : Le deuxième frontend.
/chemin/vers/certificat1.pem : Le chemin vers le certificat SSL pour le premier frontend.
/chemin/vers/certificat2.pem : Le chemin vers le certificat SSL pour le deuxième frontend.
backend backend1 : Le backend associé au premier frontend.
backend backend2 : Le backend associé au deuxième frontend.
condition1 : La condition qui détermine si le trafic doit être dirigé vers backend1.
condition2 : La condition qui détermine si le trafic doit être dirigé vers backend2.
server1, server2 : Les adresses IP et les ports des serveurs dans les backends respectifs.
Chaque frontend peut avoir ses propres ACL et règles pour diriger le trafic vers les backends appropriés. De même, chaque backend peut avoir ses propres serveurs et options de configuration spécifiques.
Configuration du service ADCS
Console de gestion des certificats
La console de gestion des certificats de Windows ADCS est accessible en allant dans le gestionnaire de serveur, puis « Outils » et « Autorité de certification » :

Une fois la console ouverte, vous pouvez visualiser plusieurs éléments :
- Les certificats révoqués
- Les certificats délivrés
- Les demandes en attente
- Les demandes ayant échoué
- Les modèles de certificats
Révoqué un certificat
Afin de révoque un certificat, cliquez sur « Certificats délivrés », puis faites un clic droit sur le certificat en question, cliquez sur « Toutes les tâches » puis « Révoquer un certificat » :

Vous pouvez alors spécifier une raison ainsi que la date et l’heure à laquelle vous souhaitez que le certificat soit révoqué :

Demander un certificat
Afin de demander un certificat, il est nécessaire de faire une demande dans le portail du service des certificats.
Le portail est accessible via l’adresse IP du serveur sur lequel a été installé le rôle ADCA (http://192.168.2.10/certsrv)
Une fois sur le portail, cliquez sur « Demander un certificat » :

Ensuite cliquez sur « Demande de certificat avancée »

Entrez la chaine de caractère de la demande de certificats et sélectionnez le modèle vous correspondant. Si le certificat est pour un serveur web, prenez le modèle « Serveur Web » puis cliquez sur « Envoyer » :

Pour finir, téléchargez le certificat en base 64 :
