Les certificats OpenVPN, création et renouvellement
Quelques notes perso sur le sujet
Publié le : 8/29/2025
Pourquoi ?
J’utilise OpenVPN pour créer un lien bien pratique entre mon réseau local et mes différentes machines nomades.
Dans ce contexte, il m’arrive parfois d’avoir à ajouter des clients, et même parfois de devoir renouveler certains certificats. Les quelques commandes suivantes sont bien pratiques pour réaliser ces actions ! Pour toutes les commandes suivantes, j’assume que vous êtes dans un terminal, dans le dossier qui contient le docker compose de votre application OpenVPN.
Ajouter un client
La première étape est de générer les certificats pour le client. Pour ça, deux choix s’offrent à vous :
- Client avec un mot de passe
docker-compose run --rm openvpn easyrsa build-client-full <nom-du-client>
Cela initie les actions de création d’un client avec un mot de passe, ce que je recommande. Divers interactions seront nécessaire.
- Client sans mot de passe
docker-compose run --rm openvpn easyrsa build-client-full <nom-du-client> nopass
Une fois les interactions terminées et le client créé, il est temps de générer le fichier ovpn qui vous permettra d’importer le profil dans l’application du client :
docker-compose run --rm openvpn ovpn_getclient <nom-du-client> > <nom-du-client>.ovpn
Le fichier <nom-du-client>.ovpn
est désormais disponible dans votre dossier et peut-être transférer sur l’appareil qui en à besoin !
Supprimer un client
Si vous souhaitez qu’un des clients OpenVPN n’est plus accès à votre réseau local, il est possible de retirer les droits grace à la commande :
docker-compose run --rm openvpn ovpn_revokeclient <nom-du-client>
Le mot-clé remove
peut être ajouté à la fin de la commande ci-dessus pour supprimer directement tous les fichiers/certificats associés au client dans l’application.
Renouveler un certificat
Alors là j’annonce une fois de plus que je ne maitrise clairement pas tout ce que je fais donc si quelque chose vous hérisse, hésitez pas à me contacter pour m’expliquer et que j’améliore cela !
Toutes les commandes qui vont suivre seront réalisées directement dans le bash du conteneur openvpn, vous pouvez vous y connecter en faisant :
docker exec -it openvpn /bin/sh
Je vous conseille de commencer par aller contrôler les certificats, pour savoir lesquels doivent être renouvelés.
Pour ça, il faut se rendre dans /etc/openvpn/pki/issued
, et vous pouvez utiliser la commande suivante pour afficher les informations d’un certificat :
openssl x509 -in <nom_certificat>.crt -text -noout
Une fois les renouvellements identifiés, vous pouvez commencer en utilisant tout simplement easyrsa renew <nom_certificat>
.
Vous pouvez ensuite révoquer l’ancien avec la commande easyrsa revoke-renewed <nom_certificat>
.
Enfin, la commande précédente vous recommande de faire easyrsa gen-crl
, mais j’avoue ne pas connaitre l’impact de cela ! Il est désormais temps de quitter le bash du conteneur avec un exit
!
Si un des certificats renouvelés est celui d’un client alors il doit être transmis au client associé.
N’ayant pas d’idée de comment faire ça proprement, j’ai re-générer un profil (docker-compose run --rm openvpn ovpn_getclient <nom-du-client> > <nom-du-client>.ovpn
) et je l’ai réimporter dans mon application OpenVPN Connect en écrasant le précédent.
Conclusion
Voilà, vous en savez désormais autant que moi ! C’était facile non ?
J’espère que cela vous est quand même utile et bonne journée !