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.sh
do 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:
-home
je přizpůsobený adresář pro instalaciacme.sh
in. Ve výchozím nastavení se instaluje do~/.acme.sh.
--config-home
je 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-home
je 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
.--accountemail
je 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á.-accountkey
je soubor ukládající soukromý klíč vašeho účtu. Ve výchozím nastavení je uložen v--config-home
.-useragent
je 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/