GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Lets Encrypt SSL certifikáty na Ubuntu 18.04

Certbot je uživatelsky přívětivý automatický klient, který stahuje a nasazuje certifikáty SSL/TLS pro váš webový server. Jedná se o nástroj EFF, který se používá k získání certifikátů z Let's Encrypt a automatické aktivaci HTTPS na vašem serveru. Stručně řečeno, funguje jako oficiální „klient Let’s Encrypt“ nebo „klient Let’s Encrypt Python“. Využívá Automated Certificate Management Environment (ACME) k automatickému nasazení bezplatných certifikátů SSL, kterým důvěřuje většina prohlížečů. Funguje tedy pro všechny ostatní CA, které podporují protokol ACME.

V tomto článku vysvětlím, jak získat a nainstalovat zdarma certifikáty SSL zašifrujte pomocí Certbot pro Apache a Nginx na serverech Ubuntu 18.04.

Předpoklady

  • Server Ubuntu Bionic Beaver (18.04) s právy root pro instalaci požadovaných balíčků podle požadavků.
  • Plně kvalifikovaná doména, která je registrována a má správné záznamy DNS. Zde v tomto článku používám celou doménu fosscloudy.com.

Nainstalujte Certbot

Zpočátku, abychom získali certifikáty Letsencrypt SSL, budeme muset nainstalovat software Certbot. I když je Certbot v poslední době dostupný v Ubuntu, balíčky tam bývají zastaralé. Proto je vhodné k instalaci používat úložiště softwaru Ubuntu s nejnovějším softwarem. Certbot můžete nainstalovat pomocí následujících příkazů:

#add-apt-repository ppa:certbot/certbot
#apt update
#apt install certbot

Nainstalovanou verzi Certbotu můžete potvrdit tímto příkazem níže:

# certbot --version
certbot 0.23.0

Navíc můžeme tento příkaz "certbot plugins" použít ke zjištění dostupných pluginů Certbot nainstalovaných na vašem serveru.

# certbot plugins
Saving debug log to /var/log/letsencrypt/letsencrypt.log

* standalone
Description: Spin up a temporary webserver
Interfaces: IAuthenticator, IPlugin
Entry point: standalone = certbot.plugins.standalone:Authenticator

* webroot
Description: Place files in webroot directory
Interfaces: IAuthenticator, IPlugin
Entry point: webroot = certbot.plugins.webroot:Authenticator
-------------------------------------------------------------------------------

Ve výchozím nastavení bude tento balíček obsahovat pouze Samostatný a webroot plugin. Podle našeho účelu můžeme dále povolit všechny požadované pluginy jeden po druhém.

Nastavení certifikátu Let's Encrypt SSL na Apache

Certbot poskytuje plugin Apache pro snadnější vydávání certifikátů SSL pomocí tohoto nástroje. Tento plugin můžeme nainstalovat spuštěním tohoto příkazu níže:

#apt install python-certbot-apache

Nyní jsme připraveni tento nástroj použít, ale pro konfiguraci SSL pro domény budeme muset ověřit některé konfigurační soubory Apache. Pro vydání certifikátu SSL pro doménu se Certbot pokusí načíst přesného virtuálního hostitele domény v konfiguraci vašeho serveru Apache. Můžete se podívat na můj předchozí článek, který vám pomůže s nastavením virtuálního hostitele domény. Za předpokladu přítomnosti správného virtuálního hostitele pro naši doménu můžeme spustit tento příkaz a nainstalovat SSL pro naši doménu fosscloudy.com.

# certbot --apache -d fosscloudy.com -d www.fosscloudy.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for fosscloudy.com
http-01 challenge for www.fosscloudy.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/fosscloudy.com.conf to ssl vhost in /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://fosscloudy.com and
https://www.fosscloudy.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=fosscloudy.com
https://www.ssllabs.com/ssltest/analyze.html?d=www.fosscloudy.com
-------------------------------------------------------------------------------

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/fosscloudy.com-0002/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/fosscloudy.com-0002/privkey.pem
Your cert will expire on 2018-09-03. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- 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

Výše uvedený interaktivní postup vás provede všemi informacemi potřebnými k podpisu/instalaci certifikátu pro vámi vybranou doménu. SSL vaší domény se stáhne, nainstaluje a správně nakonfiguruje ve virtuálním hostiteli vaší domény automaticky po provedení tohoto příkazu. Nyní můžete přistupovat ke své doméně pomocí HTTPS a potvrdit její fungování nebo ověřit stav SSL v nástroji Kontrola SSL.

Volitelně, pokud máte nakonfigurováno více virtuálních hostitelů/domén, můžete pomocí níže uvedeného příkazu pro ně nainstalovat certifikáty SSL.

#certbot --apache

Certbot vás požádá, abyste vybrali domény zahrnuté v novém certifikátu.

Pokud navíc nechcete, aby Certbot automaticky instaloval/konfiguroval virtuální hostitel vaší domény s novým certifikátem SSL, můžete pomocí následujícího příkazu pouze vygenerovat certifikát SSL. Později jej můžete nakonfigurovat ručně.

#certbot --apache certonly

Nastavení certifikátu Let's Encrypt SSL na Nginx

Pro vaše servery s webovým serverem Nginx můžeme použít plugin Certbot Nginx k automatickému získání a instalaci certifikátů SSL. Tento plugin můžete nainstalovat zadáním tohoto příkazu níže:

#apt install python-certbot-nginx

Nyní jsme připraveni tento nástroj použít, ale pro konfiguraci SSL pro domény budeme muset ověřit některé konfigurační soubory Nginx pro totéž. Pro vydání certifikátu SSL pro doménu se Certbot pokusí načíst přesného virtuálního hostitele domény v konfiguraci vašeho serveru Nginx. Za předpokladu přítomnosti správného virtuálního hostitele pro naši doménu můžeme spustit tento příkaz a nainstalovat SSL pro naši doménu fosscloudy.com.

# certbot --nginx -d fosscloudy.com -d www.fosscloudy.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: N
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for fosscloudy.com
http-01 challenge for www.fosscloudy.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/fosscloudy.com.conf
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/fosscloudy.com.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/fosscloudy.com.conf
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/fosscloudy.com.conf

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://fosscloudy.com and
https://www.fosscloudy.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=fosscloudy.com
https://www.ssllabs.com/ssltest/analyze.html?d=www.fosscloudy.com
-------------------------------------------------------------------------------

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/fosscloudy.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/fosscloudy.com/privkey.pem
Your cert will expire on 2018-09-03. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. 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

Tento samovysvětlující interaktivní postup vám pomůže automaticky vygenerovat/instalovat/konfigurovat SSL certifikát pro vaši doménu. SSL vaší domény se stáhne, nainstaluje a správně nakonfiguruje ve virtuálním hostiteli vaší domény automaticky po provedení tohoto příkazu. Nyní můžete přistupovat ke své doméně pomocí HTTPS a potvrdit její fungování nebo ověřit stav SSL v kontrole SSL. Můžete nahradit mou doménu fosscloudy.com vaší a spustit stejný příkaz pro vygenerování vašeho certifikátu SSL.

Podobně jako u pluginu Apache, pokud máte nakonfigurováno více virtuálních hostitelů/domén, můžete použít níže uvedený příkaz k instalaci certifikátů SSL pro všechny z nich.

#certbot --nginx

Certbot vás požádá, abyste vybrali domény zahrnuté v novém certifikátu.

Pokud navíc nechcete, aby Certbot automaticky instaloval/konfiguroval vaši doménu Virtuální hostitel s novým certifikátem SSL, můžete pomocí následujícího příkazu pouze vygenerovat certifikát SSL, který můžete později nakonfigurovat ručně.

#certbot --nginx certonly

Nastavení certifikátů Let's Encrypt Wildcard pomocí Certbot

Let's Encrypt nedávno začal podporovat zástupné certifikáty pomocí svého nového protokolu ACME2. To znamená, že můžete mít jeden zástupný certifikát jako *.fosscloudy.com a používat jej na všech ostatních doménových subdoménách, jako je docs.fosscloudy.com, blog.fosscloudy.com, mail.fosscloudy.com atd. velmi snadná efektivní správa certifikátů pro četné doménové subdomény. Tento zástupný certifikát SSL pro fosscloudy.com můžete vygenerovat spuštěním tohoto příkazu níže. Tento příkaz můžete upravit tak, že vaše preferovaná doména nahradí fosscloudy.com.

# certbot certonly --manual -d *.fosscloudy.com --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for fosscloudy.com

-------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.fosscloudy.com with the following value:

z25SzIfe37x5va0ynh6KdmEYVjjuSvdUOGM_t_twsVk

Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/fosscloudy.com-0001/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/fosscloudy.com-0001/privkey.pem
Your cert will expire on 2018-09-03. 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"
- 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

Jak je uvedeno v tomto interaktivním postupu, požádá vás o přidání konkrétního záznamu TXT do vašich záznamů DNS. V mém případě to oznámilo nastavení TXT, jak je uvedeno níže:

-------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.fosscloudy.com with the following value:

z25SzIfe37x5va0ynh6KdmEYVjjuSvdUOGM_t_twsVk

Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue

U vašeho poskytovatele DNS vytvoříte nový DNS TXT záznam s:

Record Name: _acme-challenge (you may or may not need the .fosscloudy.com suffix depending on your DNS provider.
Record Value: z25SzIfe37x5va0ynh6KdmEYVjjuSvdUOGM_t_twsVk (replace this with the value provided by Certbot)
 

Uložte nastavení DNS a stiskněte Enter v okně Certbot pro spuštění kontroly a dokončení ověření. Budete si muset nějakou dobu počkat, než se nový DNS záznam rozšíří přes internet. Čekal jsem 30 minut a stiskl enter. Můžete dokonce nastavit nižší hodnotu TTL, aby byl tento proces rychlejší.

Gratulujeme!! Vygeneruje se zástupný certifikát pro vaši doménu fosscloudy.com. Nyní můžete tento zástupný certifikát použít s jakoukoli subdoménou, kterou vytvoříte pro název své domény. Pro tuto doménu jsem například vytvořil subdoménu, konkrétně docs.fosscloudy.com. Použije tento zástupný znak SSL certifikát nainstalovaný pro hlavní doménu. Ke své subdoméně můžete přistupovat pomocí HTTPS v prohlížeči a potvrdit její fungování.

Automatické obnovení certifikátů SSL

K získání certifikátů SSL můžete použít kteroukoli z výše uvedených metod. Všechny tyto certifikáty Let's Encrypt jsou ale krátkodobé a budou platné pouze 90 dní. Je tedy nutné tyto certifikáty před vypršením platnosti obnovit, aby se usnadnilo normální fungování vašich webových stránek. Můžete to udělat ručně, pokud potřebujete, nebo můžete tento proces automatizovat pomocí cronjobs nebo klienta Certbot.

Když je certifikát úspěšně nainstalován provedením výše uvedených metod, zobrazí se zpráva podobná této:

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/fosscloudy.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/fosscloudy.com/privkey.pem
Your cert will expire on 2018-09-03. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"

Tato zpráva jasně uvádí, jak si v budoucnu obnovit certifikát pomocí "certbot renew" příkaz.

Pojďme otestovat proces automatického obnovení pomocí následujícího příkazu:

#certbot renew

Tento příkaz zkontroluje, zda je nutné obnovit doménové SSL a obnoví ty doménové SSL, které potřebují obnovení.

Dobrou zprávou je, že balíčky Certbot na našem serveru přicházejí s cronjobem, který automaticky obnoví naše SSL certifikáty před vypršením jejich platnosti. Protože certifikáty Let's Encrypt vydrží 90 dní, je velmi vhodné tuto funkci využít.

# cat /etc/cron.d/certbot
# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc. Renewal will only occur if expiration
# is within 30 days.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew

Tento cron poběží dvakrát denně, ale neobnoví certifikáty, pokud jejich platnost brzy vyprší.

Přečtěte si také:

  • Nainstalujte WordPress na Docker LEMP Stack pomocí Letsencrypt SSL

Let’s Encrypt doslova změnil způsob, jakým generujeme, instalujeme a používáme SSL certifikáty. Díky jeho automatizovaným postupům pomocí nástroje Certbot můžete vidět, jak snadno můžete získat své bezplatné certifikáty SSL během několika sekund z Let’s Encrypt a nainstalovat je během několika minut automaticky. Doufám, že tento článek je pro vás informativní a užitečný. Uveřejněte prosím své cenné komentáře a návrhy.


Ubuntu
  1. Jak nainstalovat Nextcloud s Nginx a nechat šifrovat SSL na Ubuntu 20.04 LTS

  2. Jak nainstalovat Magento 2 s Nginx a nechat šifrovat SSL na Ubuntu 20.04 LTS

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

  1. Jak nainstalovat X-Cart s Nginx a nechat šifrovat SSL na Ubuntu 18.04 LTS

  2. Jak nainstalovat Drupal s Nginx a nechat šifrovat SSL na Ubuntu 20.04 LTS

  3. Jak nainstalovat Webmin a zabezpečit jej pomocí Lets Encrypt SSL na Ubuntu 20.04 LTS

  1. Jak nainstalovat Shopware 6 s Nginx a nechat šifrovat SSL na Ubuntu 20.04

  2. Jak nainstalovat TYPO3 CMS s Lets Encrypt SSL na Ubuntu 20.04

  3. Jak nainstalovat ProjectSend s Apache a nechat šifrovat SSL na Ubuntu 20.04