Nebude. Alespoň zatím ne. Menšina zatím stále vede diskuze jak to vůbec udělat aby se nemusel zastavovat stávající webserver.
Přijde mi, že autoři jsou tak trochu retardovaný - místo toho aby jako první udělali jednorázovou utilitu, která si na vlastním portu ověří doménu a vyplivne cert, napsali to v nečem líp přenositelným než v pythonu, tak se řeší jak se hrabat do konfigurace co nejvíce verzí stávajících webserverů. Aneb proč to dělat složitě když to jde jednoduše.
Při použití s podporovanými webservery není nutné webserver vůbec zastavovat. Utilita ho pouze několikrát reloaduje.
Přijde mi, že autoři jsou tak trochu retardovaný - místo toho aby jako první udělali jednorázovou utilitu, která si na vlastním portu ověří doménu a vyplivne cert…
Přesně tohle utilita umí. Jen ten vlastní port je 443, případně 80. A je to tak naschvál, aby se skutečně ověřilo držení webserveru a ne nějaké jiné náhodné služby.
napsali to v nečem líp přenositelným než v pythonu
Co je lépe přenositelné než Python a proč?
Čistý shell rozhodně není tak přenositelný, jak se lze naivně domnívat. V praxi to vůbec není standardizované a všude je to něco trochu jiného, včetně třeba jiných parametrů programů. Proto taky třeba autotools jsou takové děsné bukkake.
Speciálně na různých „lehčích“ systémech ala routery kolikrát nejsou ani zdaleka adekvátní sety programů. Například jako shell busybox s brutálně ořezanými programy jako grep, kolikrát tam není ani sed, chybí CURL a wget. To se pak hodně blbě pracuje s netem.
Oproti tomu python2.7, pokud je, tak je všude stejný. Pokud není, tak se dá doinstalovat jednodušeji, než amorfní cloud příkazů pro shell se správnými parametry.
Musi to byt naozaj cisty shell, tj. ziadne bashizmy $((1+1)), [[ ]] ani GNU-izmy ako lubovolne poradie parametrov ls subor -la alebo rozsirene parametry - u spominaneho sedu odporucam nepouzivat nic okrem -e, -n a -f a pripadne nazvu suboru a potom nebyva problem.
Orezany grep nie je problem - proste parametry ako -E alebo -r nemaju v cistom shelli co robit.
Orezane wget alebo ftp byvaju aj na routeroch (v specifikacii tusim nie su), ale treba sa obmedzit na zakladnu mnozinu prikazov. Ked uz spominate tie routery - kolko ste videli routerov bez wget a ftp, ktore zvladali python?
Python ma mozno este trochu vacsi problem s amorfnym cloudom prikazov ako shell. Ked chcem pouzivat openssl, tak predpokladam, ze ma uzivatel nainstalovany openssl; menej ludi uz napadne instalovat python-openssl.
Jasně - podporovanými - jinými slovy se nějaká externí utilita hrabe v konfiguraci a reloaduje server. Jenže oni nejsou jen podporované servery a administrátoři co chtěji tohle pustit do konfigurace - takže musíte stávající server vypnout a pak ho zase zapnout. WTF
Python je možná supr na normálním linuxovém stroji... ale nejsou jen linuxové stroje, ale krom jiných systémů jsou i jiné hardwary. Když už napsali server v Go tak mohli naprogramovat i klienta a mohlo to bejt v binárce bez závislostí. Ostatně ten proces se měl navrhnout tak aby šel naskriptovat i v shellu...
takže musíte stávající server vypnout a pak ho zase zapnout
Ne, nemusíte. Záleží na možnostech serveru – pokud lze jeho konfiguraci změnit bez restartu, restartovat ho nemusíte. A to, jakým způsobem se mění konfigurace serveru, je záležitost autorů toho serveru, ne Let's Encrypt.
mohlo to bejt v binárce bez závislostí
Jo, binárka bez závislostí, která komunikuje přes HTTPS. Spouštěná pod rootem. To bychom si opravdu pomohli.
Ostatně ten proces se měl navrhnout tak aby šel naskriptovat i v shellu...
Proč? Jak v shellu naskriptujete bezpečnou komunikaci přes internet?
Nechápete. Ono by stačilo kdyby ta jejich utilita po spuštění poslouchala na jiném portu a pak vyplivla certifikát.
Ne, musí se vymýšlet něco co se bude implementovat do limitovaného množství serverů, anebo máš admine smůlu, musíš to jednou za tři měsíce schodit anebo vymejšlet obezličku alá haproxy...
Jo, binárka bez závislostí, která komunikuje přes HTTPS. Spouštěná pod rootem. To bychom si opravdu pomohli.
Kde je problém? Zdrojáky k tomu máte.
Proč? Jak v shellu naskriptujete bezpečnou komunikaci přes internet?
Tak nemyslel jsem holej shell. Probůh.
Ono by stačilo kdyby ta jejich utilita po spuštění poslouchala na jiném portu a pak vyplivla certifikát.
To nejde, lebo zdielane hostingy. Kazdy si tam moze posluchat na portoch vyssich ako 1024 a na nizsich zase nikto. Tam by mohol kazdy ziskat certifikat pre domeny hostovane na rovnakom serveri.
Shell mě zase tak nebere, naštěstí je tu implementace v Go https://github.com/xenolf/lego
musíš to jednou za tři měsíce schodit anebo vymejšlet obezličku alá haproxy...
Mohl byste uvést jeden důvod, proč by admin něco shazoval?
Kde je problém? Zdrojáky k tomu máte.
A kde je váš problém? Zdrojáky k tomu máte.
Tak nemyslel jsem holej shell. Probůh.
Aha. Takže vám vadí, že se z shellu spustí nějaká binárka, a jako náhradu navrhujete z shellu spouštět binárku. Možná mi něco uniká, ale já v tom teda nevidím rozdíl.
pytali ste sa na "Jak v shellu naskriptujete bezpečnou komunikaci přes internet?", dostali ste odpoved.
Ste snad prekvapeny, ze shell spusta externu utilitu? Snad ste necakali, ze v nativnom /bin/sh sa da naprogramovat modul do kernelu... hlavny rozdiel je v tom ze je openssl tam uz mate a nepotrebujete tam dovliest hromadu inak nepotrebneho balastu
Pokud někomu vadí spuštění externí utility, předpokládal jsem, že to chce napsat v čistém shellu, ne že z něj chce spouštět externí utility. Překvapený nejsem, věděl jsem, že to jen v čistém shellu napsat nejde – právě proto jsem se na to ptal, protože bylo jasné, že autor toho nápadu buď o shellu ví mnohem víc než já, nebo to naopak jen tak plácnul a vůbec nepřemýšlel nad tím, že by k tomu stejně potřeboval spoustu závislostí.
OpenSSL tam mít nemusím, stejně jako tam nemusím mít wget.
Mám nginx a ten plugin pro nginx jim ještě pořádně nefunguje a certifikáty se dají jednoduše generovat tak, že ukážete tady je webroot tohodle webu a utilita do adresáře $webroot/.well-know/ nasype handshake data pro ACME.
Jsem si docela jistý, že i na custom serverech umíte říct (příklad je nginx):
location ^~ /.well-known/ {
root /var/lib/letsencrypt/$server_name/.well-known/
}