GNU/Linux >> Znalost Linux >  >> Linux

Začínáme s acme.sh Umožňuje šifrovat klienta SSL

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:

  1. 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.
  2. Vytvořte alias pro:acme.sh=~/.acme.sh/acme.sh .
  3. 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 instalaci acme.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:

Přidat následující záznam TXT:Domain:_ACME-Challenge.example.comtxt Hodnota:9ihdbjyftexayeds4dbueuto18kbzwvteJunswd32-CADD Následující záznam:Čeká se, až se DNS projeví.

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.

  • https://github.com/Neilpang/acme.sh
  • https://letsencrypt.org/

Linux
  1. Začínáme se Zsh

  2. Začínáme s Lets Encrypt SSL Certificates na Ubuntu

  3. Jak spravovat certifikáty Lets Encrypt SSL/TLS pomocí certbota

  1. Zabezpečení ISPConfig 3.1 pomocí bezplatného šifrovacího certifikátu SSL

  2. Začínáme s ls

  3. Začínáme s PostgreSQL na Linuxu

  1. Začínáme s GnuCash

  2. Začínáme s Etcher.io

  3. Začínáme s regulárními výrazy