Projekt
Centrální server pro správu a distribuci TLS certifikátů — vydávání přes ACME, token-based pull distribuce s IP omezením a automatická obnova certifikátů přes systemd timer.
CertHub vznikl jako náhrada za ruční správu TLS certifikátů roztroušených po desítkách serverů a síťových zařízení v organizaci. Místo individuálního prodlužování na každém stroji se veškerá logika vydávání a obnovy certifikátů soustřeďuje na jednom místě. Certifikáty jsou vydávány přes ACME protokol (u certifikační autority, kde není potřeba DNS/HTTP challenge, domény jsou předregistrovány v portálu).
Distribuce funguje na pull principu: každý server nebo zařízení dostane unikátní token URL a stahuje si certifikát sám v pravidelném intervalu. Pro zařízení, která pull neumožňují (Cisco ASA, Fortigate, IronPort), je připraven push model přes REST API. Token lze omezit na konkrétní IP adresy nebo CIDR rozsahy, takže k soukromému klíči má přístup pouze oprávněný stroj.
Klientský skript nejprve porovná SHA-256 fingerprint lokálního certifikátu s fingerprintem na CertHub serveru. Reload služby (Apache, nginx, postfix…) proběhne jen tehdy, pokud se certifikát skutečně změnil — zbytečné výpadky jsou tím eliminovány.
Každá doména má vlastní ACME účet s dedikovanými EAB credentials.
Každý server dostane unikátní UUID token. Endpoint /dl/{token}/{soubor} vrátí cert.pem, privkey.pem, cert.pfx nebo fingerprint.
Ke každému tokenu lze přiřadit seznam povolených IP adres nebo CIDR rozsahů. Požadavek z nepovolené adresy dostane 403 — privátní klíč se nedostane ke třetí straně.
Server vrací SHA-256 fingerprint certifikátu jako ETag. Klient porovná fingerprint před restartem služby — reload proběhne jen při skutečné změně, 304 Not Modified jinak.
Linux a Synology stahují PEM soubory, Windows servery dostávají zaheslovaný PKCS#12 (PFX) generovaný on-the-fly. Heslo k PFX je uloženo šifrovaně u tokenu.
Zařízení bez HTTP klienta (Cisco ASA, Fortigate, IronPort) jsou obsluhována push modelem přes REST API — CertHub sám nahraje nový certifikát po obnově.