Portál AbcLinuxu, 25. dubna 2024 07:28
letsencrypt-autocheck
14.1.2016 00:50
| Přečteno: 1600×
|
| poslední úprava: 14.1.2016 00:50
Kvůli krátké expiraci certifikátů od letsencrypt jsem byl nucen napsat tento krátký script v pythonu který zajišťuje automatické obnovení certifikátů když se blíží datum expirace a také umožňuje vystavování nových certifikátů. Dále zasílá informace o stavu obnovení certifikátu emailem.
Projekt letsencrypt asi už všichni znáte takže není třeba se k němu nějak blíže vyjadřovat.
Co umí letsencrypt-autocheck ?
- Udržuje seznam certifikátů v konfiguračním souboru config.py
- Vyžádat nové certifikáty pro domény zapsané v config.py
- Automaticky obnovit certifikáty pro domény zapsané v config.py
- Notifikovat o úspěchu/neúspěchu obnovení certifikátů na email skrze SMTP nebo SENDMAIL
- Restartovat webserver při úspěšném obnovení certifikátů
Jak to funguje ?
letsencrypt-autocheck je volán z cronu v ~denních intervalech kdy kontroluje expiraci certifikátu definovaných v config.py voláním openssl. Pokud cerfikát expiruje za cert-expiration-renew (viz config.py) nebo méně je požádáno o obnovu certifikátu, výsledek obnovy je následně zaslán emailem.
Proč vlastní script když existují již jiné alternativy ?
Pro tvorbu vlastního scriptu jsem se rozhodl po průzkumu ostatních implementaci které mě nijak nezaujaly protože:
- Vyžadovaly instalaci obskurního interpreteru jazyka který není defaultně v 90% distribucí nebo dokonce ani v repozitářích
- Neměly konfigurační soubor ale pouze předání skrze parametry
- Složitá konfigurace
- Chybjející notifikace o stavu certifikátů
Tento průzkum proběhl před 8dny v době tvorby tohoto scriptu, takže je možné že se stav změnil...
Kecy jsou kecy, ukaž kód!
Tak tady je https://github.com/Salamek/letsencrypt-autocheck
Instalace (README)
https://github.com/Salamek/letsencrypt-autocheck/blob/master/README.md
Tiskni
Sdílej:
Komentáře
Vložit další komentář
14.1.2016 10:34
rastos | skóre: 62
| blog:
rastos
Re: letsencrypt-autocheck
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.