Pojďme šifrovat je nezisková certifikační autorita (CA), která poskytuje bezplatný certifikát SSL/TLS. Let’s Encrypt vám umožní nainstalovat nebo požádat o certifikát SSL zdarma. SSL/TLS certifikát od Let’s Encrypt má platnost 90 dní a můžete si jej kdykoli zdarma obnovit.
V tomto tutoriálu použijeme Certbot k vyžádání nebo získání bezplatného SSL certifikátu od Let’s Encrypt.
Certbot je klient Let’s Encrypt, který spravuje certifikáty Let’s Encrypt SSL. Plně vybavený klient Let’s Encrypt, který dokáže automatizovat úlohy, získávání a obnovování certifikátů SSL.
Pokračujme kroky, jak zabezpečit náš web pomocí Let’s Encrypt.
1 Předpoklady
Certifikát Let’s Encrypt SSL/TLS lze nainstalovat pouze na server s registrovaným názvem domény. Musíte se ujistit, že váš záznam domény A směřuje na váš server, protože Let’s Encrypt potřebuje ověřit doménu, pokud je správně nasměrována na server, na kterém požadujete získat certifikát SSL.
2 Instalace Certbota
V této části vás provedeme instalací Certbota s webovým serverem Apache a Nginx.
Pro webový server Apache.
sudo apt install certbot python3-certbot-apache
Pro webový server Nginx.
sudo apt install certbot python3-certbot-nginx
3 Vygenerování certifikátu SSL
Pro webový server Apache.
sudo certbot --apache
Po spuštění příkazu postupujte podle pokynů níže.
Output:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
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-v02.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 our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: domain.com
2: www.domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1,2
Vybrali jsme 1 a 2 pro subdoménu www, která má být zahrnuta do certifikátů SSL.
Poznámka :Můžete se rozhodnout, pokud nechcete zahrnout subdoménu www, stačí vybrat 1 a stiskněte enter.
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 vhost in /etc/apache2/sites-enabled/domain.com.conf to ssl vhost in /etc/apache2/sites-available/domain.com-le-ssl.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://domain.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/domain.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/domain.com/privkey.pem
Your cert will expire on 2022-03-05. 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
Pro webový server Nginx.
sudo certbot --nginx
OUTPUT:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
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. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, 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 our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: domain.com
2: www.domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1,2
Requesting a certificate for domain.com
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/domain.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/domain.com/privkey.pem
This certificate expires on 2022-07-28.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for domain.com to /etc/nginx/sites-enabled/domain.com.conf
Congratulations! You have successfully enabled HTTPS on https://domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
To je velká gratulace!
4 Otestujte certifikát SSL
Po instalaci si můžete ověřit, zda je certifikát SSL nainstalován na vašem webu pouhým přístupem na https://domain.com. Můžete to také ověřit pomocí webové stránky SSL Checker, jako je https://www.sslshopper.com/ssl-checker.html.
5 Obnovení certifikátu SSL
Když nainstalujete Certbot automaticky nastaví skript automatického obnovení, protože Let’s Encrypt je platný pouze do 90 dnů nebo 3 měsíců. Chcete-li zkontrolovat, zda je spuštěn skript automatického obnovení, spusťte tento příkaz.
systemctl status certbot.timer
● certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Sun 2021-12-05 13:33:10 EST; 45min ago
Trigger: Mon 2021-12-06 00:10:45 EST; 9h left
Triggers: ● certbot.service
Dec 05 13:33:10 domain.com systemd[1]: Started Run certbot twice daily.
Certbot časovač se spustí dvakrát denně, aby zkontroloval, zda existují domény připravené na obnovení.
Existují případy, kdy časovač Certbot neobnoví domény včas, což způsobí vypršení platnosti certifikátů. V tomto případě můžete ručně obnovit domény spuštěním tohoto příkazu.
sudo certbot renew
Můžete také provést zkušební obnovu a otestovat, zda obnovení SSL funguje podle očekávání. Chcete-li to provést, spusťte tento příkaz.
sudo certbot renew --dry-run
6 Závěr
Ukázali jsme, jak zabezpečit naše stránky pomocí Let’s Encrypt SSL certifikátu. V tomto tutoriálu se také můžete naučit, jak používat Certbot k obnovení a získání bezplatného certifikátu Let’s Encrypt SSL.
Pokud se chcete dozvědět více o tom, jak zabezpečit váš server, můžete se podívat na tutoriál fail2ban.