Acme.sh je jednoduchý, výkonný a snadno použitelný klient protokolu ACME napsaný čistě v jazyce Shell (Unix shell), kompatibilní s shelly bash, dash a sh. Pomáhá spravovat instalaci, obnovu a zrušení certifikátů SSL. Podporuje protokoly ACME verze 1 a ACME verze 2 a také zástupné certifikáty ACME v2. Být klientem ACME s nulovou závislostí je ještě lepší. Aby to fungovalo, nemusíte stahovat a instalovat celý internet. Tento nástroj nevyžaduje přístup root nebo sudo, ale je doporučeno používat root.
Acme.sh podporuje následující metody ověření, které můžete použít k potvrzení vlastnictví domény:
- Režim Webroot
 - Samostatný režim
 - Samostatný režim tls-alpn
 - Režim Apache
 - Režim Nginx
 - Režim DNS
 - Režim alias DNS
 - Bezstavový režim
 
Co je Let's Encrypt
Let’s Encrypt (LE) je certifikační autorita (CA), která nabízí bezplatné a automatické certifikáty SSL/TLS s cílem šifrovat celý web. Pokud vlastníte název domény a máte na svůj server shellový přístup, můžete využít Let's Encrypt k získání důvěryhodného certifikátu zdarma. Let's Encrypt může vydat certifikáty SAN až pro 100 názvů hostitelů a certifikáty se zástupnými znaky. Všechny certifikáty jsou platné po dobu 90 dnů.
Použití Acme.sh a základní příkazy
V této části ukážu některé z nejběžnějších příkazů a možností acme.sh.
Instalace Acme.sh
Máte několik možností, jak nainstalovat acme.sh.
 Instalujte z webu pomocí curl nebo wget  :
curl https://get.acme.sh | sh
zdroj ~/.bashrc  nebo
wget -O - https://get.acme.sh | sh
zdroj ~/.bashrc  Instalovat z GitHubu :
curl https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh | INSTALLONLINE=1 h  nebo
wget -O - https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh | INSTALLONLINE=1 h  Klonování a instalace Gitu:
klon git https://github.com/Neilpang/acme.sh.git
cd ./acme.sh
./acme.sh --install
zdroj ~/.bashrc  Instalační program provede 3 akce:
- Vytvořte a zkopírujte 
acme.shdo vašeho domovského adresáře ($HOME):~/.acme.sh/. Všechny certifikáty budou také umístěny v této složce. - Vytvořte alias pro:
acme.sh=~/.acme.sh/acme.sh. - Vytvořte denní úlohu cron pro kontrolu a obnovení certifikátů v případě potřeby.
 
Pokročilá instalace:
klon git https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install \
 -- home ~/myacme \
 --config-home ~/myacme/data \
 --cert-home ~/mycerts \
 --accountemail "[e-mail chráněný]" \
 --accountkey ~/myaccount.key \
 --accountconf ~/myaccount.conf \
 --useragent "toto je můj klient."  Nemusíte nastavovat všechny možnosti, stačí nastavit ty, na kterých vám záleží.
Vysvětlené možnosti:
-homeje přizpůsobený adresář pro instalaciacme.shin. Ve výchozím nastavení se instaluje do~/.acme.sh.--config-homeje zapisovatelná složka, acme.sh tam zapíše všechny soubory (včetně cert/keys, configs). Ve výchozím nastavení je v--home.--cert-homeje přizpůsobený adresář pro ukládání vámi vydaných certifikátů. Ve výchozím nastavení je uložen v--config-home.--accountemailje e-mail používaný k registraci účtu do Let's Encrypt, zde obdržíte e-mail s oznámením o obnovení. Výchozí hodnota je prázdná.-accountkeyje soubor ukládající soukromý klíč vašeho účtu. Ve výchozím nastavení je uložen v--config-home.-useragentje hodnota hlavičky user-agent používaná k odeslání do Let's Encrypt.
 Po dokončení instalace ji můžete ověřit kontrolou acme.sh verze:
acme.sh --version
# v2.8.1  Program má mnoho příkazů a parametrů, které lze použít. Chcete-li získat pomoc, můžete spustit:
acme.sh --help  Vydání certifikátu SSL
Pokud již máte spuštěný webový server, měli byste použít režim webroot . Budete potřebovat přístup pro zápis do webové kořenové složky. Zde je několik příkladů příkazů, které lze použít k získání certifikátu prostřednictvím režimu webroot:
Jedna doména + režim Webroot:
acme.sh --issue -d example.com --webroot /var/www/example.com
  Více domén ve stejném režimu cert + Webroot:
acme.sh --issue -d example.com -d www.example.com -d mail.example.com --webroot /var/www/example.com  Jedna doména ECC/ECDSA cert + režim Webroot:
acme.sh --issue -d example.com --webroot /var/www/example.com --keylength ec-256  Více domén ve stejném cert ECC/ECDSA + režim Webroot:
acme.sh --issue -d example.com -d www.example.com -d mail.example.com --webroot /var/www/example.com --keylength ec-256  
 Platné hodnoty pro --keylength jsou:2048 (výchozí), 3072, 4096, 8192 nebo ec-256, ec-384.
Pokud nemáte webový server, možná jste na SMTP nebo FTP serveru, 80 port je volný, pak můžete použít samostatný režim. Pokud chcete použít tento režim, budete si muset nejprve nainstalovat nástroje socat.
Jedna doména + samostatný režim:
acme.sh --issue -d example.com --standalone
  Více domén ve stejném cert + samostatném režimu:
acme.sh --issue -d example.com -d www.example.com -d mail.example.com --standalone
  Pokud nemáte webový server, možná jste na serveru SMTP nebo FTP, port 443 je volný. Můžete použít samostatný režim TLS ALPN. Acme.sh má vestavěný samostatný webový server TLS, který může naslouchat na portu 443, aby vydal certifikát.
Jedna doména + režim samostatného TLS ALPN:
acme.sh --issue -d example.com --alpn  Více domén ve stejném režimu cert + Samostatný TLS ALPN:
acme.sh --issue -d example.com -d www.example.com --alpn  Automatická integrace DNS API
Pokud má váš poskytovatel DNS rozhraní API, může acme.sh pomocí tohoto rozhraní API automaticky přidat záznam DNS TXT. Váš certifikát bude automaticky vystaven a obnoven. Není potřeba žádná ruční práce. Než požádáte o certifikáty, nakonfigurujte své klíče API a e-mail. V současné době má acme.sh nativně automatickou integraci DNS s přibližně 60 poskytovateli DNS a může využít nástroj Lexicon pro ty, kteří nejsou nativně podporováni.
Jedna doména + režim CloudFlare DNS API:
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="[e-mail chráněný]"
acme.sh --issue -d example.com --dns dns_cf
  Zástupný znak cert + režim CloudFlare DNS API:
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="[e-mail chráněný]"
acme.sh --issue -d example.com -d '*.example.com' - -dns dns_cf  Pokud váš poskytovatel DNS nepodporuje žádný přístup k rozhraní API, můžete záznam TXT přidat ručně.
acme.sh --issue --dns -d example.com -d www.example.com -d cp.example.com
  Měli byste získat výstup jako níže:
 Poté stačí znovu spustit pomocí renew argument:
acme.sh --renew -d example.com  Mějte na paměti, že toto je manuální režim DNS a certifikáty nelze automaticky obnovovat. Až bude čas na obnovení certifikátů, budete muset do své domény ručně přidat nový záznam TXT. Místo toho použijte režim DNS API, protože jej lze automatizovat.
Instalovat Let's encrypt SSL cert
 Po vygenerování certifikátů pravděpodobně budete chtít nainstalovat/zkopírovat vydané certifikáty do správného umístění na disku. Tento příkaz musíte použít ke zkopírování certifikátů do cílových souborů, nepoužívejte soubory certifikátů v ~/.acme.sh/ složky, jsou pouze pro interní použití, struktura složek se může v budoucnu změnit. Před instalací si vytvořte rozumný adresář pro uložení certifikátů. Může to být /etc/letsencrypt , /etc/nginx/ssl  nebo /etc/apache2/ssl například v závislosti na softwaru vašeho webového serveru a vašich vlastních preferencích pro ukládání věcí souvisejících s SSL.
Apache příklad:
acme.sh --install-cert \
 --domain example.com \ 
 --cert-file /cesta/k/cert/cert.pem \
 --key-file /path/to/keyfile/key.pem \
 --fullchain-file /cesta/k/fullchain/fullchain.pem \
 --reloadcmd "sudo systemctl reload apache2.service "  Nginx příklad:
acme.sh --install-cert \
 --domain example.com \ 
 --cert-file /cesta/k/cert/cert.pem \
 --key-file /path/to/keyfile/key.pem \
 --fullchain-file /path/to/fullchain/fullchain.pem \
 --reloadcmd "sudo systemctl reload nginx.service "  Parametry jsou uloženy v konfiguračním souboru .acme.sh, takže je musíte správně nastavit pro váš systém, protože tento soubor se načítá při obnově úlohy cron. "reloadcmd" závisí na vašem operačním systému a inicializačním systému.
Obnovení certifikátů Let's Encrypt SSL
Certifikáty nemusíte obnovovat ručně. Všechny certifikáty budou automaticky obnovovány každých 60 dnů.
Můžete však také vynutit obnovení certifikátu:
acme.sh --renew -d example.com --force  nebo pro ECC cert:
acme.sh --renew -d example.com --force --ecc  Jak upgradovat acme.sh
Acme.sh můžete aktualizovat na nejnovější kód pomocí:
acme.sh --upgrade  Můžete také povolit automatický upgrade:
acme.sh --upgrade --auto-upgrade  Potom bude acme.sh automaticky aktualizován.
A je to. Pokud na něčem uvíznete, navštivte wiki stránku acme.sh na adrese https://github.com/Neilpang/acme.sh/wiki.
Odkazy
- https://github.com/Neilpang/acme.sh
 - https://letsencrypt.org/