[TUTO] – pfSense : Créer et gérer ses certificats LetsEncrypt avec l’API OVH

de | 1 mai 2020

Hello,

J’ai longuement tatonné pour pouvoir gérer mes différents certificats LetsEncrypt pour les services que j’utilises ; directement sur le serveur web, via mon synology, via un reverse proxy … bref, j’ai tout essayé et au final rien ne me convenait.

Alors après avoir creusé un peu, j’ai tenté de gérer tout ça via mon (mes) routeur(s) pfSense afin de les utiliser directement via cet équipement et mon reverse proxy HAProxy (sur mon pfSense également – billet à suivre).

Pour vous facilitez le déploiement voici un petit tuto pour créer et gérer vos certificats LetsEncrypt via pfSense.

Installation du module

  • Dans un premier temps on va installer le paquet nécessaire. Aller dans System > Package manager

pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH

  • Rechercher puis installer le package « ACME »

pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVHpfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH

 

Configuration générale

Une fois le package installé, on aura une nouvelle entrée dans la partie « Services ».

  • Dérouler ce menu et cliquer sur ACME Certificates

pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH

  • Dans l’onglet « General settings » cocher « Cron entry ». Ce paramètre permettra de générer le renouvellement automatique de vos certificats.

pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH

 

Génération de la clé

Direction maintenant l’onglet « Account keys ». Ici on va créer une clé privée qui permettra de faire la demande de certificat à l’étape suivante. Pour cela, remplir les champs comme ci-dessous et cliquer sur « Register ACME Account key » (6) après avoir généré la clé (5) puis cliquer sur Save (7).

pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH

 

Création du certificat

La création du certificat se fait en deux étapes.

  1. Dans un premier temps il faut générer des accès via l’API d’OVH pour pouvoir automatiser la génération/renouvellement du certificat en utilisant la méthode de vérification par nom de domaine. Plusieurs registrar sont compatibles tels que :
    • OVHCloud
    • Online.net (Scaleway)
    • Infoblox
    • CloudFlare
    • Gandi
    • GoDaddy
  2. Dans un second temps il faudra configurer le wizard pfSense pour faire la demande de certificat auprès de LetsEncrypt.

Créer le token d’authentification sur l’API OVH

Cette étape n’est à faire qu’une seule fois (par domaine). Par sécurité je vous conseille de générer un token pour une seule et même demande de certificat par domaine.

pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH

  • Après avoir cliqué sur « Create keys » vous vous retrouverez avec ce type d’informations (à garder précieusement car nous en aurons besoin à l’étape d’après) :

pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH

Créer le certificat LetsEncrypt

On retourne sur pfSense et maintenant on peux faire la configuration pour générer notre certificat.

  • Aller sur l’onglet « Certificates » puis cliquer sur « Add ». Vous aurez ainsi la fenetre ci-dessous.

/!\ Si vous souhaitez générer un certificat de type wildcard, vous devrez déclarer deux noms de domaine dans la partie « Domain SAN list ». /!\

Exemple avec le domaine vdays.net :

Le premier domainname dans la partie « Domain SAN list » sera : vdays.net

Le second domainname dans la partie « Domain SAN list » sera : *.vdays.net

Prenez le temps de bien regarder le screen ci-dessous pour reproduire à l’identique.

Si vous souhaiter créer un certificat uniquement pour un domaine racine ex : vdays.net ou pour un sous-domaine ex : support.vdays.net alors il n’y a qu’un seul « Domain SAN list » à créer.

pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH

 

  • Une fois tous les paramètres renseignés, il faut lancer la demande de certificat auprès de LetsEncrypt en cliquant sur le bouton Issue/renew

pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH

Vérifier le certificat

On peux désormais vérifier si notre certificat est bien créé, avec les informations demandées.

  • Aller dans System > Cert. Manager

pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH

  • Dans l’onglet « CA » vous devriez déjà voir le certificat racine de LetsEncrypt

pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH

  • Puis dans l’onglet « Certificates » vous devriez voir apparaître votre certificat avec tous les noms de domaine désirés (*.vdays.net / vdays.net) ainsi que sa durée de validité.

pfSense : Créez et gérez vos certificats LetsEncrypt avec l'API OVH

 

Vous avez désormais réussi à générer un certificat, gratuitement, via votre pfSense et l’autorité LetsEncrypt. Le renouvellement se fera de manière complètement automatique.

Dans un prochain billet, je détaillerais comment utiliser ce certificat via le reverse proxy « HAProxy » intégré à pfSense.

See you soon !

If you like this post, don't hesitate to share it !

3 réflexions au sujet de « [TUTO] – pfSense : Créer et gérer ses certificats LetsEncrypt avec l’API OVH »

  1. Pakito69

    Bonjour,

    Si je peux me permettre cette information est erroné :

    /!\ Si vous souhaitez générer un certificat de type wildcard, vous devrez déclarer deux noms de domaine dans la partie « Domain SAN list ». /!\
    Exemple avec le domaine vdays.net :
    Le premier domainname dans la partie « Domain SAN list » sera : vdays.net
    Le second domainname dans la partie « Domain SAN list » sera : *.vdays.net

    il n’y a pas besoin de déclaré le domaine racine. Le *.vdays.net suffit.
    Je l’ai testé hier et ça fonctionne parfaitement.
    Merci pour votre tuto.

    Répondre
  2. guilhem

    Salut et merci pour le tuto !
    Une chose très importante a ajouter : c’est de vérifier si le port 80 est bien ouvert dans pfsense !
    J’ai galéré pour comprendre que LetsEncrypt en avait besoin pour valider le certif

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *