WSL2 – Certbot créer des certificats SSL

WSL2-Logo

Lors de la réalisation de maquette, j’ai souvent la nécessité de générer des certificats SSL publics. Généralement, j’utilise la PKI Let’S Encrypt et l’utilitaire Certbot lancé depuis une machine WSL.

L’installation de WSL2 est documentée dans le KB Microsoft suivant :

Dans ce post, la distibution utilisée est “Ubuntu 20.04”.

CERTBOT-WSL-0010
Ubuntu 20.04

Sommaire

Mise à jour de la distribution

Dès lors que la distribution est installée, nous allons commencer par mettre à jour celle-ci à l’aide des commandes  suivantes :

sudo apt update
sudo apt upgrade
CERTBOT-WSL-0020
sudo apt update
CERTBOT-WSL-0030
sudo apt upgrade

Désormais, la distribution est à jour.

Maintenant, nous allons installer l’utilitaire Certbot.

Installation de Certbot

Pour installer Certbot sur la distribution, lancer la commande ci-dessous :

sudo apt install certbot
CERTBOT-WSL-0040
sudo apt install certbot

Certbot est installé et prêt à être utilisé.

Génération d'un certificat

Dans cet exemple, le certificat demandé est celui d’une instance ADFS.

Le nom de l’instance est : fs.teddycorp.fr

Il est donc nécessaire que le SAN du certificat comporte cet alias DNS.

Le manuel de l’utilitaire Certbot est disponible dans le lien ci-dessous :

La commande à lancer pour obtenir le certificat est la suivante :

sudo certbot certonly --manual -d fs.teddycorp.fr --preferred-challenges dns

Notons que les attributs suivants sont utilisés :

  • -d : représente une entrée du SAN, répéter N fois “-d enr1.exemple.fr” pour compléter la liste du SAN.
  • –preferred-challenges : force la méthode de vérification de propriété du domaine.

Pour faire simple, nous demandons un certificat pour “fs.teddycorp.fr” en utilisant comme vérification l’ajout d’un enregistrement TXT dans le DNS.

Depuis WSL, lancer la commande suivante :

sudo certbot certonly --manual -d fs.teddycorp.fr --preferred-challenges dns

Renseigner les informations demandés.

Dans la zone publique du DNS créez l’enregistrement demandé. A savoir :

  • Type : TXT
  • Enregistrement : _acme-challenge.fs.teddycorp.fr
  • Valeur : pdlWCh9fi5kV4vDJ6Jg1dvQa8U8f488uvqkwgULtnh8

Attendre quelques minutes après la création de l’enregistrement DNS puis continuer le processus Certbot.

Le nouveau certificat est créé dans le répertoire “/etc/letsencrypt/live/fs.teddycorp.fr/” de la VM.

Récupération et conversion du certificat

Maintenant que le nouveau certificat est généré dans le répertoire “/etc/letsencrypt/live/fs.teddycorp.fr”. Nous allons le récupérer sur la machine Windows.

Notons que le certificat est composé de plusieurs fichiers, à savoir :

  • cert.pem
  • chain.pem
  • fullchain.pem
  • privkey.pem

Dans les étapes suivantes, seuls les fichiers suivants seront utilisés :

  • fullchain.pem –> Le certificat et les CA.
  • privkey.pem –> La clef privée du certificat.

Pour récupérer le certificat dans le répertoire “C:\temp\” utiliser la commande ci-dessous :

cp -rf /etc/letsencrypt/live/fs.teddycorp.fr/ /mnt/c/Temp/

Afin de rendre le certificat utilisable sur les environnements Windows, il est nécessaire de le convertir au format “pfx”.

Pour ce faire, nous allons utiliser l’utilitaire natif Windows “CERTUTIL.EXE”.

La conversion va opérer un merge des fichiers “fullchain.pem” et “privkey.pem”.

Il est nécessaire de renommer ces deux fichiers pour que ceux-ci répondent aux exigences de l’utilitaire “CERTUTIL”. A savoir :

  • fullchain.pem –> fs-teddycorp-fr.pem
  • privkey.pem –> fs-teddycorp-fr.key
mv /mnt/c/Temp/fs.teddycorp.fr/fullchain.pem /mnt/c/Temp/fs.teddycorp.fr/fs-teddycorp-fr.pem
mv /mnt/c/Temp/fs.teddycorp.fr/privkey.pem /mnt/c/Temp/fs.teddycorp.fr/fs-teddycorp-fr.key

À présent nous pouvons lancer la création du certificat au format “pfx” à l’aide de la commande suivante (exécuter en PowerShell) :

certutil -MergePFX .\fs-teddycorp-fr.pem .\fs-teddycorp-fr.pfx

Le certificat ainsi que la clef privée sont désormais au format pfx dans le fichier “fs-teddycorp-fr.pfx”.

Il est possible d’importer le certificat dans les magasins Windows. Une fois l’import réalisé, nous pouvons consulter les informations du certificat notamment le champ SAN.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.