
Keyser, unique script bash pour la gestion de certificats SSL
25 juin 2025
Ne ratez pas nos articles sur l'open source, le big data et les systèmes distribués, fréquence faible d’un email tous les deux mois.
Keyser est un utilitaire en ligne de commande conçu pour simplifier la création, la gestion et la protection des certificats SSL de manière efficace et sécurisée. Distribué sous la forme d’un script Bash unique, il offre aux développeurs et administrateurs systèmes un outil léger mais puissant pour générer des autorités de certification, des chaînes intermédiaires et des certificats signés — avec un chiffrement GPG optionnel pour plus de sécurité.
Keyser allie autonomie, clarté documentaire et testabilité, sans dépendre d’outils ou bibliothèques externes. Il se révèle particulièrement utile dans les environnements où la transparence et le minimalisme sont essentiels.
Il est écrit sous la forme d’un seul fichier Bash et utilise la librairie OpenSSL présente sur le système hôte.
Pourquoi Keyser ?
La gestion du cycle de vie des certificats implique souvent des outils complexes ou des plateformes PKI lourdes à opérer et à utiliser. À l’inverse, Keyser est léger, lisible car non compilé et facile à auditer — ce qui le rend adapté au développement, aux tests, et même à la production lorsque la transparence et la reproductibilité sont essentielles.
Avec Keyser, certaines tâches deviennent très simples :
- Initialiser une autorité de certification locale
- Créer des certificats intermédiaires et finaux
- Utiliser GPG pour chiffrer les clés des certificats
- Stocker, lister et inspecter les certificats
- Mettre le répertoire “vault” sous contrôle de version lorsqu’il est chiffré avec GPG
Keyser s’adresse à :
- Des administrateurs systèmes recherchant un outil SSL portable
- Des développeurs ayant besoin de générer rapidement des certificats reproductibles
- Des professionnels de la sécurité privilégiant des solutions transparentes et basées sur des fichiers
Une compréhension basique des outils en ligne de commande OpenSSL et GPG est recommandée, mais pas obligatoire.
Fonctionnalités
- Générer des certificats racine et intermédiaires auto-signés
- Créer et signer des certificats finaux
- Chiffrer les clés privées avec GPG
- Organiser les certificats par domaine dans un répertoire “vault”
- Inspecter et exporter les métadonnées des certificats
- Entièrement documenté et couvert par des tests unitaires
Installation
Keyser est un fichier Bash unique et peut être installé sans dépendances externes. Il stocke et gère les certificats dans un répertoire “vault”.
La dernière versoin est téléchargée depuis le dépôt GitHub :
curl -L -o ~/.keyser/bin/keyser https://bit.ly/adaltas-keyser
chmod +x ~/.keyser/bin/keyser
Le binaire est ensuite ajouté au PATH
:
echo 'PATH="$PATH:$HOME/.keyser/bin"' >> ~/.profile
source ~/.profile
Optionnellement, un autre emplacement pour le répertoire “vault” est défini.
echo "export KEYSER_VAULT_DIR=~/.keyser/vault" >> ~/.profile
Pour activer le chiffrement GPG optionnel des clés privées, une “passphrase” est définie.
echo "export KEYSER_GPG_PASSPHRASE=<change_this_secret>" >> ~/.profile
Cette variable est laissée vide ou non définie pour désactiver le chiffrement.
Keyser est maintenant correctement installé.
# Affichage de l'aide
keyser
# Affichage de la version utilisée
keyser version
Utilisation
La commande keyser
liste toutes les commandes disponibles. Utilisez keyser
pour obtenir l’aide spécifique à une commande.
Cette section se concentre sur :
- la génération d’une autorité de certification
- la génération d’un certificat pour un domaine intermédiaire
- la génération d’un certificat générique (wildcard) pour des sous-domaines
À titre d’exemple, les noms suivants sont utilisés :
- MyAuthority : nom de notre autorité de certification
- example.test : nom de domaine intermédiaire
- www.example.test : sous-domaine de example.test
Initialisez un nouveau répertoire de certificats. La commande init
crée la structure de répertoires de base :
keyser init
Lorsque le chiffrement GPG est activé, les clés sont chiffrées, et le répertoire peut être versionné avec Git, par exemple.
Autorité de certification (CA)
keyser cacert \
-c FR \
-e no-reply@test \
-l "Environnement de test local" \
-o MyAuthority \
test
Explication des options :
-c
: pays de l’émetteur-e
: adresse email de l’émetteur-o
: organisation de l’émetteur-l
: localisation de l’émetteur
: nom de domaine complet du certificat (icitest
)
Les informations de l’autorité sont consultées avec la commande cacert_view
.
# Contenu du certificat
keyser cacert_view test
# Informations sujet
keyser cacert_view -s test
# Détails et empreinte
keyser cacert_view -t test
Certificat intermédiaire
Un certificat intermédiaire est créé avec cette commande.
keyser cert -i \
-e no-reply@test \
example.test
Tous les certificats peuvent ensuite être listés.
keyser cert_list
Certificat wildcard
Un certificat générique est créé pour tous les sous-domaines. L’option -d
définit le champ SAN (Subject Alternative Name), nécessaire pour que les navigateurs reconnaissent le certificat.
keyser cert \
-d '*.example.test' \
'*.example.test'
Les certificats sont ensuite exportés à l’endroit souhaité.
keyser cert_export -c \
'*.example.test' ~/.certs
Les fichiers ca.crt
, cert.pem
,key.pem
, et sign.cnf
seront générés dans le dossier exporté.
ls ~/vault/test.example.\*
ca.crt cert.pem key.pem sign.cnf
Les certificats intermédiaires permettent d’isoler la racine CA. Le principal avantage d’un certificat intermédiaire est de permettre une délégation hiérarchique de confiance, afin que des organisations puissent gérer et émettre des certificats pour leurs services tout en maintenant une chaîne de confiance vers une autorité racine — sans jamais exposer la clé privée de cette dernière.
Voir la documentation pour plus d’informations.
Modèle de sécurité
Keyser prend en charge le chiffrement GPG des clés privées. Lorsque la variable d’environnement KEYSER_GPG_PASSPHRASE
est définie, toutes les nouvelles clés sont chiffrées au repos. Cela protège contre un accès non autorisé sur des environnements partagés ou multi-utilisateurs.
Contribution
Keyser est open source et hébergé sur GitHub. Les contributions sont les bienvenues.
Avant de soumettre une pull request, assurez-vous que votre code est documenté et testé.
Conclusion
Keyser propose une approche simple mais puissante pour gérer les certificats SSL. Son design minimaliste, combiné à des fonctionnalités de sécurité avancées comme le chiffrement GPG optionnel, en fait une solution idéale pour les développeurs, administrateurs systèmes et professionnels de la sécurité. Que vous travailliez en développement, test ou production, Keyser garantit une gestion des certificats SSL efficace, sécurisée et compréhensible.