ACMEMGR.SH : un orchestrateur de certificats TLS

Certificat https

ACMEMGR.SH est un gestionnaire ACME.SH pour un nombre illimité de certificats, de services TLS (https par exemple), d’hôtes et de comptes DNS-01 de fournisseurs de noms de domaine.

ACMEMGR.SH est conçu pour travailler au dessus de ACME.SH, le client ACME le plus abouti pour l’autorité de certification automatisée et ouverte Let’s Encrypt qui est proposée par le groupe à but non lucratif Internet Security Research Group (ISRG).

ACMEMGR.SH gère:

  • Les certificats de N domaines
  • Sur N services https (web ou email ou autres, les scripts enfants sont configurables)
  • Sur N hôtes (dédiés ou virtuels)
  • Avec N comptes DNS-01 (provenant même de différents services d’hébergement)
 

Grâce à ACMEMGR.SH, la gestion de centaines de certificats, serveurs et autres comptes de registrars DNS-01, dans un environnement multi-comptes, est simplement gérée par une seule liste, dans un seul fichier.

La création, la suppression et le renouvellement des certificats, mais aussi leur propagation et suppression sur des serveurs distants, ainsi que l’envoi d’e-mails et de logs de service sont gérés de manière transparente.

Caractéristiques

  • Gestion des certificats génériques (comme * .domain.tld)
  • Lors de la création d’un certificat commençant par “www.” (comme “www.domain.tld”), ajoute automatiquement le nom de domaine “domain.tld” dans le certificat
  • La demande de renouvellement de certificat n’est effectuée que lorsque le certificat actuel n’est plus valable qu’un mois
  • Les opérations de certificats (copie et suppression) vers des hôtes distants sont entièrement personnalisables
  • Le service lié au certificat (Web ou email ou autre) est rechargé uniquement lorsque le certificat est créé, renouvelé ou supprimé avec succès (pas de rechargement sans nécessité)
  • Le service n’est redémarré qu’une seule fois, même s’il y a plus d’un certificat mis à jour lié au service (un rechargement uniquement pour N certificats dépendant du même service sur le même hôte)
  • Le rechargement ou le redémarrage du service après la mise à jour du certificat est entièrement personnalisable
  • Programmation défensive avec une journalisation cohérente et des messages par emails
  • Vérifications approfondies avant d’effacer à distance les certificats déclarés supprimés. Aucune utilisation de suppression récursive pour la sécurité.

Architecture

Le schéma en haut de l’article est une vue d’ensemble du fonctionnement. Toute la gestion se fait dans un SERVEUR DE DISTRIBUTION DE CERTIFICATS centralisé :

  • Un seul hôte pour gérer un pool de registrars, d’hôtes et de noms de domaine
  • Architecture simple, modulaire et compréhensible
  • Un seul fichier à gérer: la base de données des noms de domaine
 

Le schéma ci-dessous est une vue modulaire du fonctionnement. Le SERVEUR DE DISTRIBUTION DE CERTIFICATS embarque uniquement :

  • Deux scripts : acme.sh et acmemgr.sh
  • Un fichier de base de données, acmemgr.db, dans un format de texte délimité
  • Un répertoire contenant tous les certificats
  • Autant de sous-répertoires que de comptes de registrars DNS-01
  • Autant de scripts personnalisables que nécessaire pour recharger les services et copier les certificats

Conclusion

ACMEMGR.SH donne toute satisfaction depuis plusieurs années. Des contributions, puisque c’est un logiciel libre, ont permis de notables améliorations.

Le source et le manuel complet sont disponibles sur Github.

D’autres contributions de Sowebio au logiciel libre viendront compléter notre dépôt public.