Pfsense – Une autorité de certification dans votre LAN

Introduction

  1. Infrastructure
  2. Installer une autorité sur pfsense
  3. Créer des vhost HTTP
  4. Créer des vhost HTTPS et Installer un certificat auto signé
  5. Installer un certificat signé par l’autorité

Introduction :

Afin de réaliser une expérience sur l’installation et la gestion des certificats j’ai déployé une petite infra PKI avec une autorité et certification et un serveur web hébergeant plusieurs sites.

Je voulais vérifier trois choses :

  • Avec des certificats auto-signés le navigateur émet une alerte
  • Avec un certificat signé par une autorité LAN inconnue le navigateur émet une alerte
  • Avec un certificat signé par une autorité LAN connue le navigateur ne met pas d’alerte et affiche le cadenas vert.

Rappel sur une infrastructure PKI :

L’infrastructure de gestion de clés ou Public Key Infrastructure (PKI) délivre des certificats numériques permettant d’effectuer des opérations de cryptographie. Ces derniers sont utilisés pour la vérification et l’authentification de la validité des différentes parties impliquées dans un échange électronique.

  1. Infrastructure

L’infrastructure est composée d’un client avec firefox, d’un serveur web avec 3 sites et d’une CA.

  • Client : Windows 7 64 bits avec la dernière version de firefox
  • CA : Pfsense avec une carte LAN
  • WEB : debian avec apache2  et 3 vhosts avec des sites différents
  • Installer une autorité de certification

Dans un premier temps il faut installer Pfsense.

Une fois Pfsense installé il faut créer la CA. Pour cela rendez-vous dans system, cert manager.

Ici vous devez créer votre CA

Une fois la CA créée vous pourrez retrouver la gestion des certificats dans l’onglet certificates.

Avec cette petite infra vous pourrez effectuer les démarches suivantes

Créer un certificat interne pour la CA, importer un certificat, créer une demande de signature de certificat et surtout signer un certificat avec le CSR.

  1. Créer les vhost http sur le serveur web

Ici j’illustre simplement comment créer des vhost http

J’ai fait mes 3 sites web dans /var/www

Puis je leur créer chacun un vhost http

  1. Créer des vhost HTTPS et Installer un certificat auto signé

Une fois le site accessible en http nous allons lui installer un certificat auto-signé

Une fois que j’ai mon certificat auto-signé je créer un vhost HTTPS pour vert.cyberops.fr

Une fois ce vhost créé j’ai accès au site en HTTPS et j’ai bien un message m’indiquant que le certificat ne provient pas d’une CA connue.

Le premier point est donc vérifié, le navigateur émet bien une alerte si l’utilisateur visite une page avec un certificat auto signé.

  1. Installer un certificat signé par une CA LAN connue.

Pour atteindre cet objectif j’ai réalisé un script qui génère un vhost et un certificat.

Ce script me génère un certificat auto signé mais également le CSR qui vont nous être utiles.

Une fois le script exécuté on se retrouve dans la même situation que pour le site précédent. HTTPS est activé avec un certificat auto signé. Il ne nous reste plus qu’a demander à la CA de nous générer un certificat et de remplacer la ligne :

SSLCertificateFile /etc/ssl/$domaine/$domaine.crt

Par le certificat qu’elle nous aura délivré.

Pour cela il faut récupérer le CSR :

Ensuite rendez-vous dans pfsense pour demander la signature d’un certificat.

Une fois que c’est fait vous devriez pouvoir télécharger le certificat.

Il ne reste plus qu’a importer ce dernier dans le serveur web.

Ensuite modifier le vhost https pour qu’il utiliser le bon certificat.

Une fois le service apache reload vous devriez pouvoir accéder au site.

Voilà encore un point de confirmé. Je n’ai jamais rajouté le certificat de la CA dans google chrome. Le certificat n’est donc pas de confiance pour chrome.

Je refais l’expérience en important le certificat CA dans firefox.

Une fois que c’est fait je retourne sur le site et pour constater le changement.

Maintenant que j’ai importé le certificat de mon autorité de certification je n’ai plus d’avertissement du navigateur.

Conclusion : D’un point de vue sécurité l’avertissement des navigateurs est une très bonne initiative. Malheureusement ces avertissements sont apparus trop tôt dans le sens ou une grande partie des sites web n’étaient pas encore en HTTPS. Les visiteurs se sont donc habitué à ignorer ces avertissements.

D’une autre part un attaquant pourrait déployer le certificat de son autorité dans les navigateurs de sa cible et ainsi effectuer des attaques presque indétectables.

Télécharger l’articlehttps://breizhcybersecurity.fr/wp-content/uploads/2019/08/Cr%C3%A9er-une-autorit%C3%A9-de-certification-dans-votre-LAN.docx

admin