EasyRSA – Création d’une CA intermédiaire

EasyRSA – Création d’une CA intermédiaire

18 septembre 2021 0 Par Mairien Anthony

Création d’une autorité de certification intermédiaire avec EasyRSA.

Aujourd’hui nous faisons suite au précédent article où nous avions rapidement vu ce qu’était une autorité de certification, sa création via l’utilitaire EasyRSA, et la mise en place d’un VPN Client-to-Site sur pfSense via l’importation de certificat root.

Ici, nous allons voir ensemble comment créer une CA Intermédiaire, puis nous l’importerons sur notre pfSense.

I) Création de la CA Root

Ici je vous renvois donc au précédent article, disponible ici.

II) Création de la CA Intermediate

La première étape est donc d’initialiser notre PKI, comme nous avions fait pour la CA Root :

./easyrsa ini-pki

Ensuite nous allons créer notre CA intermédiaire de la façon suivante :

./easyrsa build-ca subca

Comme on peut le voir sur la capture d’écran ci-dessus, une CA request est disponible dans /pki/reqs/, et nous devons l’envoyer à notre CA Root pour la signer, puis placer le certificat en résultat dans le dossier /pki/ pour signer nos futurs certificats !

On peut donc créer un dossier où seront placés les CSR (demandes de signement), comme par exemple dans un dossier à la racine du /root, et ensuite via la commande ./easyrsa import-req nous pouvons importer la demande en donnant un nom à la demande, ici ce sera bxl-intermediate-ca :

Ensuite, nous pouvons vérifier que notre request se trouve bien dans le dossier /pki/reqs/, puis nous pouvons utiliser la commande ./easyrsa sign-req ca bxl-intermediate-ca pour la signer !

Il est à noter que la commande ./easyrsa sign-req permet donc de signer soit des servers, des clients, mais donc aussi des ca. Ensuite, nous renseignons simplement le short-name défini lors de l’importation de cette requête (voir plus haut).

Ensuite, on copie le contenu du fichier bxl-intermediate-ca.crt vers le fichier pki/ca.crt de notre CA Intermédiaire, et le tour est joué !

III) Importation de la CA Intermediate sur le pfSense

Ici nous nous rendons donc dans System puis Certificate Manager et nous cliquons sur Add, puis nous collons donc le certificat de notre CA intermédiaire ainsi que sa clée privée, et le compte est bon ! C’est identique à l’article précédent pour la CA Root :

Ensuite on peut donc créer notre certificat serveur pour notre pfSense lui-même, en nous rendant dans l’onglet Certificates puis Add :

Une fois fait, nous allons pouvoir mettre en place notre serveur OpenVPN pour nos clients distants !

IV) Création du serveur OpenVPN

Ici, rien de très sorcier: on choisir bien l’authentification par mot de passe et certificat, puis on choisi notre autorité de certification intermédiaire dans Peer Certitifcate Authority, ensuite nous choisissons le Server Certificate (identitique au précédent article, nous avons juste créé un certitifcate serveur pour notre pfSense), puis nous choisissons Certificate Depth : Two (Client+Intermediate+Server) et c’est tout bon !

Ensuite nous devons bien-entendu créer un utilisateur avec un certificat, et exporter sa config OpenVPN via l’utilitaire adéquat. Pour la partie création de l’utilisateur cela est trivial, et idem pour l’installation du package openvpn-client-export. Pour son certificat, soit nous pouvons le générer directement via la GUI de pfSense lors de la création du user, soit nous pouvons créer une CSR (une request pour un certificat) depuis le pfSense aussi, et la signer sur notre CA Intermediate au choix.

Une fois tout cela fait, il faut importer une dernière CA, et c’est la root. Attention cependant ! Il ne faut importer que son certificat et non sa clée privée, sinon il n’y a pas d’intérêt à créer une CA Intermédiaire !

Une fois notre CA root importée et après avoir vérifié la configuration de notre serveur OpenVPN, nous pouvons exporter la configuration de notre client et l’importer sur notre machine de test.

Ensuite, nous pouvons nous connecter (ici sous Ubuntu) :

Et tadaaaaa !

Notre client arrive bel et bien à se connecter ! Si vous obtenez une erreur de type « TLS Handshake failed« , vérifiez que vous avez bien importé le certificat de votre CA Root, puis seulement après généré le fichier OpenVPN pour votre client.

V) Conclusion

Cet article touche d’ores et déjà à sa fin ! Nous aurons donc vu comment créer une CA intermédiaire et l’utiliser dans le cadre d’un VPN Client-to-Site via pfSense ! Dans un prochain article nous clôturons doucement cette série avec la notion de CRL et la révocation de certificats clients/serveurs.

Comme d’habitude, j’espère vous avoir appris deux trois bricoles et vous souhaite une bonne journée/soirée !