Contents
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
- Rechercher puis installer le package « ACME »
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
- Dans l’onglet « General settings » cocher « Cron entry ». Ce paramètre permettra de générer le renouvellement automatique de vos certificats.
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).
Création du certificat
La création du certificat se fait en deux étapes.
- 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
- …
- 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.
- Rendez-vous sur : https://eu.api.ovh.com/createToken/ et remplissez les informations comme ci-dessous en remplaçant l’Account ID par votre compte 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) :
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.
- 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
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
- Dans l’onglet « CA » vous devriez déjà voir le certificat racine de LetsEncrypt
- 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é.
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 !
Hello ! Maxime, fondateur et auteur indépendant de vDays.net. Je travaille dans l’IT depuis 6 ans, après avoir fait 5 ans d’apprentissages. Via ce blog, j’aimerais partager et échanger avec vous sur les nouvelles technologies, notamment sur la virtualisation et VMware. Si vous voulez en savoir plus sur moi, consultez ma page « à propos de moi » ou suivez-moi sur Twitter et LinkedIn.
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.
Hello !
Merci pour cette précision, je vais corriger.
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