Keyser, unique script bash pour la gestion de certificats SSL

Keyser, unique script bash pour la gestion de certificats SSL

Vous appréciez notre travail......nous recrutons !

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 -h 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 (ici test)

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.

Partagez cet article

Canada - Maroc - France

Nous sommes une équipe passionnée par l'Open Source, le Big Data et les technologies associées telles que le Cloud, le Data Engineering, la Data Science le DevOps…

Nous fournissons à nos clients un savoir faire reconnu sur la manière d'utiliser les technologies pour convertir leurs cas d'usage en projets exploités en production, sur la façon de réduire les coûts et d'accélérer les livraisons de nouvelles fonctionnalités.

Si vous appréciez la qualité de nos publications, nous vous invitons à nous contacter en vue de coopérer ensemble.

Support Ukrain