acmesh-letsencrypt-blog-header_2016

Linux mini-howto: Let’s Encrypt snadno s ACME.sh

Linux mini-howto?
Krátce o nástrojích ze života sysadmina.

Let’s Encrypt a ACME.sh


Let’s Encrypt je “nová raketově rostoucí” certifikační autorita nabízející zdarma HTTPS (resp. obecně lze podepsat např. SMTP/IMAP,…), v současné době zatím není Let’s Encrypt kořenová certifikační autorita, proto jsou mezilehlé certifikáty podepsané autoritou IdenTrust (DST Root CA X3), tak jak je popsáno v “Chain of Trust“, na tomto kroku se pracuje, ale nebude to hned, navíc chvíli potrvá než se kořenové certifikáty rozdistribuují do prohlížečů, zařízení, atd.

Velká myšlenka výzvy Let’s Encrypt (“pojďme šifrovat”) je zlepšení situace internetové bezpečnost a masivní přechod na šifrované komunikační kanály, s tímto cílem je poskytována zcela zdarma pro každého kdo vlastní doménu, je plně automatizována (klient nasazený na Vašem serveru komunikuje s infrastrukturou Let’s Encrypt za účelem získání/prodloužení/revokování certifikátu), transparetní a otevřenáhttps://letsencrypt.org/about/Let's Encrypt obsluhované cert.

Let’s Encrypt obsluhované cert.

 

"Chain of Trust", řetězec důvěry Let's Encrypt
“Chain of Trust”, řetězec důvěry Let’s Encrypt

ACME a ACME.sh

ACME (Automatic Certificate Management Environment) je v jednoduchosti řečeno protokol pro komunikaci s infrastrukturou Let’s Encrypt, pro manipulaci s certifikáty je nutné použít na své straně klienta, který korektně implementuje právě protokol ACME.

Certifikáty pro každého ?

Jedním z klíčových požadavků pro vystavení certifikátu je ověření identity žadatele, předpoklad je, že pokud žádám o certifikát pro doménu mojedomena.cz, tak jsem schopen ji kontrolovat, nejčastější kontrola je pomocí techniky webroot , do speciálního adresáře (/.well-known/) je umístěna výzva/žádost, pro výzvu si na www.mojedomena.cz/.well-known si sáhne robot Let’s Encrypt a pokud je vše v pořádku realizuje akci (např. vystavení certifikátu), tímto mechanismem dokazuji, že jsem schopen kontrolovat svoji doménu, tedy nejsem např. schopen udělat (za normálních okolností) tento trik s cizí doménou a tím si nechat vystavit certifikát např. pro seznam.cz.

Toto nejčastější postup ověření identity žadatele, nikoliv však jediný, další možnost je DNS mode, který funguje velmi podobně, z principu je patrné, že vše je vymyšleno tak, aby bylo možné masivně a hlavně zcela automatizovaně nasazovat certifikáty, což je cílem, protože vlastní certifikáty mají platnost pouze 90 dní, takže automatická “recyklace” je v nasazení nutnost.

ACME.sh

Existuje oficiální ACME klient Let's Encrypt certbot.

Certbot je napsán v jazyce Python, který toho umí opravdu hodně, ale zároveň jde o poměrně velký kus software se spoustou závislostí, který si na serveru “builduje” vlastní prostředí pro Python, v některých případech, ale toto nechcete a třeba ani nemůžete použít (např. menší servery, embedded,…) v tomto případě sáhněte po scriptu ACME.sh.

ACME.shhttps://github.com/Neilpang/acme.sh

ACME.sh je malý shell script (unix shell) implementující plně protokol ACME, jednoduchý, snadný na použití i instalaci, kompatibilní s bash, nevyžaduje root práva.

ACME.sh a podporované ověření identity:

  • web root
  • standalone
  • DNS

Standalone mode je velmi zajímavý pro servery, kdy nemáte spuštěn www server (Apache/Nginx/…), tedy např. FTP/SMTP servery, acme.sh Vám na dobu nezbytně nutnou emuluje chování web serveru na portu 80 nástrojem netcat (nc), zde již přirozeně je nutné mít práva root.

Instalace a použití je velmi snadné a přímočaré, viz oficiální stránky projektu, dokonce je možné skrze Cygwin provozovat ACME.sh i na Windows.

https://github.com/Neilpang/acme.sh
https://github.com/Neilpang/acme.sh/wiki

Tak pojďme šifrovat, Let’s Encrypt ! 


Chcete pomoci s nasazením HTTPS na Vaše servery ?

MOJEservery.cz
Technické konzultace, implementace, kontaktujte nás.
Kontaktní e-mail:  podpora@mojeservery.cz
Kontaktní telefon: +420 725 714 669