GNU/Linux >> Znalost Linux >  >> Linux

Nainstalujte a používejte nástroj Lets Encrypt Certbot na CentOS 7 s Apache

Tento článek popisuje, jak nainstalovat a používat nástroj Let’s Encrypt® Certbot na serveru CentOS® 7.

Co je Let’s Encrypt?

Let’s Encrypt je certifikační autorita (CA), která poskytuje bezplatné 90denní certifikáty SSL. Následující podrobnosti pocházejí z jejich stránky O aplikaci:

Let’s Encrypt je bezplatná, automatizovaná a otevřená certifikační autorita (CA), provozovaná pro veřejný prospěch. Je to služba poskytovaná skupinou Internet Security Research Group (ISRG).

Poskytujeme lidem digitální certifikáty, které potřebují k aktivaci HTTPS (SSL/TLS) pro webové stránky, zdarma, uživatelsky nejpřívětivějším způsobem, jaký můžeme. Děláme to, protože chceme vytvořit bezpečnější web, který respektuje soukromí.

Klíčové principy Let’s Encrypt jsou:

  • Zdarma :Každý, kdo vlastní název domény, může pomocí Let’s Encrypt získat důvěryhodný certifikát za nulové náklady.
  • Automaticky :Software běžící na webovém serveru může spolupracovat s Let’s Encrypt a bezbolestně získat certifikát, bezpečně jej nakonfigurovat pro použití a automaticky se postarat o obnovení.
  • Zabezpečení :Let’s Encrypt poslouží jako platforma pro prosazování osvědčených postupů zabezpečení TLS, a to jak na straně CA, tak tím, že pomůže provozovatelům webů řádně zabezpečit jejich servery.
  • Transparentní :Všechny vydané nebo zrušené certifikáty budou veřejně zaznamenány a budou k dispozici komukoli.
  • Otevřít :Protokol automatického vydávání a obnovy bude zveřejněn jako otevřený standard, který mohou ostatní přijmout.
  • Kooperativní :Podobně jako samotné základní internetové protokoly je Let’s Encrypt společným úsilím ve prospěch komunity, mimo kontrolu jakékoli organizace.

Jaký je rozdíl mezi Let’s Encrypt a jinými certifikáty SSL?

Certifikáty SSL jsou klíče, které pomáhají šifrovat data vašeho serveru. Webové prohlížeče rozpoznávají pouze certifikáty SSL, které poskytla známá CA, jako je DigiCert, GoDaddy, COMODO atd. Všechny známé a důvěryhodné CA jsou členy CA/Browser Forum (cabforum.org) a dodržují přísnou sadu požadavků na vydávání certifikátů.

Existují tři různé úrovně certifikátů SSL:

  • Certifikát ověření domény (DV) :Toto je základní certifikát SSL, který dokazuje vlastnictví domény. Není potřeba žádné další ověření.

  • Osvědčení o ověření organizace (OV) :Tento certifikát nejen dokazuje vlastnictví domény, ale také dokazuje, že doménu vlastní skutečná firma v dobrém postavení u státního úřadu.

  • Certifikát EV (Extended Validation) :Tento certifikát jde o krok dále než certifikát OV tím, že dále potvrzuje, že podnik existuje alespoň tři roky.

Na druhou stranu se jedná o významné rozdíly, které hrají hlavní roli při nákupu certifikátu od CA, protože musíte projít jejich validačním procesem.

Na přední straně není mezi těmito třemi typy certifikátů žádný viditelný rozdíl. Funkce prohlížeče používaná k rozlišení mezi různými úrovněmi certifikátů byla zastaralá. Další informace naleznete v části:Certifikáty rozšířeného ověření jsou (skutečně, opravdu) mrtvé

Let’s Encrypt, oficiální CA ve fóru CA/Browser Forum, nabízí bezplatné základní DV certifikáty, které jsou platné po dobu 90 dní. To, co dělá Let’s Encrypt jedinečným, je jejich obslužný program Certbot, který si můžete nainstalovat na webový server pro vydávání a správu vašich SSL certifikátů pomocí automatizovaných procesů. Používání Certbotu má za následek méně údržby a méně bolesti hlavy. 90denní doba platnosti znamená, že klíče certifikátu jsou cyklovány častěji, což poskytuje lepší zabezpečení, protože existuje mnohem menší okno případně složeného klíče.

Začínáme

Tento článek se zaměřuje na instalaci Certbota na nejnovější verzi CentOS 7. Server použitý v tomto příkladu používá následující zásobník LAMP:

  • Vydání CentOS Linux® 7.8.2003 (Core)
  • PHP 7.4.8
  • MariaDB® 5.5.65
  • Apache® 2.4.6

Pokyny a příkazy tohoto článku poskytují základní funkce pro získání certifikátu z Let’s Encrypt. Spuštění Certbotu nezávisí na webové aplikaci, ale vyžaduje prostředky k ověření, že doménu skutečně ovládáte. Tento článek se zabývá ověřováním pomocí metody webroot, což znamená, že hostujete doménu, pro kterou potřebujete certifikát, na serveru, kam jste nainstalovali Certbot.

Důležité :Pokyny v článku používají výchozí konfiguraci Apache pro jeden web na serveru. Vaše konfigurace se může lišit v závislosti na konfiguraci Apache.

Nainstalovat Certbot

Po nastavení serveru pro poskytování vaší webové stránky použijte k instalaci Certbota následující příkaz:

[root@leexample-centos7 ~]# yum install certbot

Certbot vyžaduje následující závislosti:

=================================================================================================================================
 Package                                   Arch                    Version                           Repository             Size
=================================================================================================================================
Installing:
 certbot                                   noarch                  1.6.0-1.el7                       epel                   44 k
Installing for dependencies:
 pyOpenSSL                                 x86_64                  0.13.1-4.el7                      base                  135 k
 python-ndg_httpsclient                    noarch                  0.3.2-1.el7                       epel                   43 k
 python-requests-toolbelt                  noarch                  0.8.0-3.el7                       epel                   78 k
 python-zope-component                     noarch                  1:4.1.0-5.el7                     epel                  228 k
 python-zope-event                         noarch                  4.0.3-2.el7                       epel                   79 k
 python-zope-interface                     x86_64                  4.0.5-4.el7                       base                  138 k
 python2-acme                              noarch                  1.6.0-1.el7                       epel                   81 k
 python2-certbot                           noarch                  1.6.0-1.el7                       epel                  374 k
 python2-configargparse                    noarch                  0.11.0-2.el7                      epel                   31 k
 python2-future                            noarch                  0.18.2-2.el7                      epel                  806 k
 python2-josepy                            noarch                  1.3.0-2.el7                       epel                   89 k
 python2-mock                              noarch                  1.0.1-10.el7                      epel                   92 k
 python2-parsedatetime                     noarch                  2.4-6.el7                         epel                   78 k
 python2-pyrfc3339                         noarch                  1.1-3.el7                         epel                   16 k
 python2-six                               noarch                  1.9.0-0.el7                       epel                  2.9 k
 pytz                                      noarch                  2016.10-2.el7                     base                   46 k

Transaction Summary
=================================================================================================================================

Požádejte o nový certifikát pomocí Certbota

S nainstalovaným Certbotem můžete požádat o certifikát od Let’s Encrypt. Než budete pokračovat, poznamenejte si následující položky:

  • Domény, které požadujete. Na jeden certifikát Let’s Encrypt můžete požádat až o 100 domén.

  • Umístění kořenového adresáře nebo adresářů dokumentů vašeho webu. Tyto informace potřebujete pro certbot příkaz pro instalaci souboru txt pro ověření. Pokud přidáte více domén, které ukazují na různé adresáře, musíte je všechny vypsat v příkazu.

  • Musíte povolit přístup k /.well-known/acme-challenge/ adresář.

  • Musíte vyloučit /.well-known/acme-challenge/ adresář z vynuceného přesměrování HTTP na HTTPS.

Poznámka: Při prvním spuštění Certbota vás vyzve k zadání vaší e-mailové adresy a souhlasu s podmínkami služby.

Chcete-li požádat o certifikát, spusťte následující příkaz s vašimi podrobnostmi:

[root@leexample-centos7 ~]# certbot certonly --webroot -w /var/www/vhosts/example.com -d example.com -d www.example.com

Následuje vysvětlení prvků příkazu:

  • certonly :příznak, který říká, že je třeba pouze vydat certifikát a nedělat nic jiného. Příkaz neprovádí žádnou konfiguraci webové aplikace.
  • --webroot :říká Certbotu, aby použil zadaný webový adresář, každý oddělený -w vlajka.
  • -d :určuje doménu, která má být požadována. Musíte mít -d příznak pro každou doménu, kterou chcete mít na certifikátu.

Poznámka: Pokud chcete pokrýt obě www a bez www verze domény na jednom certifikátu, musíte použít -d příznak pro každý z nich.

Po zadání příkazu se zobrazí následující výstup:

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for letest.mccrocklin.space
Using the webroot path /var/www/vhosts/example.com for all unmatched domains.
Waiting for verification...

Pokud s ověřením nejsou žádné problémy, zobrazí se následující výstup:

Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2020-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Umístění souborů certifikátů

Certbot ve výchozím nastavení instaluje certifikáty do /etc/letsencrypt/live// .

<domain.tld> je vždy první doména, kterou nastavíte při spuštění certbot příkaz. Mějte to na paměti, když konfigurujete bloky virtuálního hostitele nebo serveru tak, aby ukazovaly na soubory certifikátu.

Můžete očekávat, že v adresáři uvidíte následující soubory:

[root@leexample-centos7 ~]# ls -al /etc/letsencrypt/live/example.com
total 12
drwxr-xr-x. 2 root root 4096 Aug  1 13:35 .
drwx------. 3 root root 4096 Aug  1 13:35 ..
lrwxrwxrwx. 1 root root   47 Aug  1 13:35 cert.pem -> ../../archive/example.com/cert1.pem
lrwxrwxrwx. 1 root root   48 Aug  1 13:35 chain.pem -> ../../archive/example.com/chain1.pem
lrwxrwxrwx. 1 root root   52 Aug  1 13:35 fullchain.pem -> ../../archive/example.com/fullchain1.pem
lrwxrwxrwx. 1 root root   50 Aug  1 13:35 privkey.pem -> ../../archive/example.com/privkey1.pem
-rw-r--r--. 1 root root  692 Aug  1 13:35 README

Všimněte si, že všechny tyto soubory jsou symbolické odkazy. To je důležité pro automatický proces obnovy, který je popsán v následující části Obnovení. Poznamenejte si následující názvy souborů a jejich použití:

  • cert.pem je certifikát.
  • chain.pem je balíček CA.
  • fullchain.pem je certifikát, za nímž následuje balíček CA.
  • privkey.pem je soukromý klíč.

Konfigurovat Apache

Ke konfiguraci Apache použijte následující příkazy:

  1. Ve výchozí konfiguraci Apache přidejte následující řádky do /etc/httpd/conf.d/ssl.conf :

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
    SSLCACertificateFile /etc/letsencrypt/live/example.com/chain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    
  2. Uložte změny a ukončete.

  3. Spuštěním následujícího příkazu proveďte kontrolu syntaxe:

    httpd -t
    
  4. Pokud se zobrazí Syntax OK a poté spusťte následující příkaz pro opětovné načtení Apache:

    systemctl reload httpd
    

Obnovte své certifikáty

Certifikáty Let’s Encrypt mají životnost 90 dní, takže když potřebujete obnovit mnoho certifikátů požadovaných pomocí nástroje Certbot, může být cyklus častého obnovování skličující.

Naštěstí má Certbot vestavěnou funkci obnovení, která se o to postará za vás. Nespouští se však automaticky, takže byste měli naplánovat, aby se spouštěl jako cron práce. Proces obnovení Cerbot používá následující kroky:

  1. Příkaz certbot renew , zahájí proces.

  2. Certbot kontroluje všechny certifikáty, které byly vydány a nainstalovány na vašem serveru. Konkrétně vyhledává všechny certifikáty, kterým v příštích 30 dnech vyprší platnost.

  3. Certbot se pokusí obnovit tyto certifikáty, jejichž platnost vypršela, pomocí stejné ověřovací metody použité pro původní žádost o certifikát.

  4. Po úspěšném obnovení vytvoří Certbot nové soubory v /etc/letsencrypt/archive// adresář, zvýšením čísla pro každou iteraci obnovení a aktualizací symbolických odkazů v /etc/letsencrypt/live// .Protože se názvy souborů certifikátů ve skutečnosti nemění, nemusíte měnit cestu k souboru v konfiguračních souborech bloku virtuálního hostitelského serveru. Díky tomu je proces obnovy hladší.

Nastavení úlohy cron

Je důležité si uvědomit, že skutečná frekvence úlohy cron závisí na konfiguraci vašeho serveru. Funkce obnovy kontroluje pouze existující certifikáty, dokud nenajde ten, jehož platnost během následujících 30 dnů vyprší. Je bezpečné nastavit úlohu cron tak, aby se spouštěla ​​jednou denně v době nízkého provozu. Pokud máte mnoho certifikátů Let’s Encrypt, které byly vydány v různou dobu, může je zachytit, když dosáhnou 30denního limitu.

Můžete se však rozhodnout, že bude spouštět méně často. Například jednou týdně ve 3:00 každou neděli.

Úlohu cron můžete vytvořit pomocí crontab nebo Anacronu uživatele root. Anacron zajišťuje, že úloha cron běží, i když byla vynechána během výpadku serveru.

K vytvoření úlohy cron použijte následující kroky:

  1. Potvrďte správnou cestu přímým zadáním příkazu:

    [root@leexample-centos7 ~]# which certbot
    /usr/bin/certbot
    
  2. Určete, kterou metodu cronu chcete použít:

    • Anacron :vytvořte nový soubor v /etc/cron.weekly/ - můžete to pojmenovat nějak jako certbotrenew

    • Cron :použijte crontab -e

  3. Vytvořte položku cron, například následující, zvolenou metodou:

    0 3 * * 0 /usr/bin/certbot renew
    
  4. Uložte soubor.

Závěr

Let’s Encrypt je skvělou alternativou k získání bezplatných certifikátů SSL pro vaše domény. Tyto certifikáty jsou certifikáty DV, což znamená, že ověřují pouze vlastnictví domény. Tento článek popisuje základní funkce nástroje Let’s Encrypt Certbot. Pokud potřebujete další možnosti a pokročilejší funkce, můžete získat další pomoc od komunity Let’s Encrypt:

  • Pojďme šifrovat
  • Pojďme zašifrovat dokumentaci
  • Let's Encrypt Community Forum

Linux
  1. Zabezpečte Apache pomocí Lets Encrypt na CentOS 7

  2. Jak nainstalovat Let’s Encrypt with Apache na CentOS 7

  3. Nainstalujte Apache a PHP na CentOS 7

  1. Jak nainstalovat Shopware s NGINX a Lets Encrypt na CentOS 7

  2. Jak nainstalovat WonderCMS s Nginx a nechat šifrovat SSL na CentOS 7

  3. Jak nainstalovat Pico CMS s Nginx a Lets Encrypt na CentOS 7

  1. Nainstalujte Automad CMS s Nginx a Lets Encrypt SSL na CentOS 7

  2. Jak nainstalovat Automad CMS s Apache a Lets encrypt na Debian 10

  3. Jak nainstalovat ElkArte Forum s Apache a Lets Encrypt na Debian 10