Šifrujme na Linuxovém serveru označuje instalaci a správu bezplatných SSL/TLS certifikáty od certifikační autority Let's Encrypt používající protokol ACME (obvykle přes Certbot).
Umožňuje HTTPS, automatické obnovení a bezpečné konfigurace pro Apache, Nginxa reverzní proxy napříč distribucemi jako Ubuntu, Debian, AlmaLinux, Rocky Linux a CentOS.
Pokud s HTTPS teprve začínáte, naučit se používat Let's Encrypt na linuxovém serveru je nejrychlejší a nejlevnější způsob, jak zabezpečit váš web.
Pochopíte, jak Let's Encrypt funguje, jak ho nainstalovat pomocí Certbotu na populární distribuce, automatizovat obnovení, opravit běžné chybya aplikujte osvědčené postupy kalení.
Co je Let's Encrypt a jak to funguje?
Let's Encrypt je bezplatná, automatizovaná, otevřená certifikační autorita, která vydává ověření domény (DV) certifikáty.
Pomocí protokolu ACME klient jako Certbot prokazuje kontrolu nad doménou. (přes HTTP-01 nebo DNS-01 výzvy) a načte podepsaný certifikát TLS pro vaši doménu. Certifikáty jsou platné 90 dní a jsou navrženy tak, aby se automaticky obnovovaly.
Klíčové komponenty, které budete používat: -
- Klient ACME (Certbot): Zabývá se námitkami, vydáváním a obnovováním.
- výzvy: HTTP-01 (soubor odesílaný přes port 80) nebo DNS-01 (záznam TXT; vyžadováno pro certifikáty se zástupnými znaky).
- Integrace webových serverů: Apache a Nginx Pluginy mohou automaticky konfigurovat virtuální hostitele.
Výhody a omezení
Proč většina webových stránek volí Let's Encrypt:
- Zdarma SSL/TLS certifikáty se širokou důvěryhodností prohlížeče.
- Automatizace na prvním místě: bezproblémové vydávání a automatické obnovení.
- Rychlé nastavení s pluginy Certbot pro Apache a Nginx.
- Podporuje klíče ECDSA a RSA, certifikáty SAN a zástupné znaky (prostřednictvím DNS-01.).
Zvažte tato omezení: -
- Pouze pro DV: žádné validace organizace (OV) ani rozšířená validace (EV).
- 90denní platnost: automatizace je nezbytná; manuální management je riskantní.
- Limity sazeb: Během testování se vyhněte nadměrnému množství požadavků; použijte testovací prostředí.
Předpoklady pro instalaci Let's Encrypt na Linuxový server
- Registrovaná doména se správným DNS Záznamy A/AAAA odkazující na váš server.
- Otevřené porty: 80 (HTTP) a 443 (HTTPS) dosažitelné z internetu.
- Přístup k vašemu Linuxovému serveru (Ubuntu/Debian/AlmaLinux/Rocky Linux/CentOS) přes Sudo/root.
- Apache or Nginx instalovány (nebo ujednání o reverzní proxy).
- Pro certifikáty se zástupnými znaky: Přihlašovací údaje API pro vaše DNS poskytovatele nebo možnost přidávat TXT záznamy.
Instalace Certbotu na populární linuxové distribuce
Ubuntu a Debian (doporučeno Snap)
Používáním Snapu získáte nejnovější Certbot a pluginy:
sudo apt update
sudo apt install snapd -y
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbotAlmaLinux, Rocky Linux, RHEL, CentOS
V případě potřeby použijte distribuční balíčky nebo EPEL:
# AlmaLinux/Rocky/RHEL 8/9
sudo dnf install -y epel-release
sudo dnf install -y certbot python3-certbot-nginx python3-certbot-apacheVydávání a instalace certifikátů (Apache, Nginx, Samostatný)
Apache: Automatická konfigurace
Certbotův Apache plugin může načíst a konfigurovat HTTPS s automatickým přesměrováním:
sudo certbot --apache -d example.com -d www.example.comBěhem zobrazení výzev vyberte možnost přesměrování HTTP na HTTPS.
Nginx: Automatická konfigurace
Před spuštěním se ujistěte, že váš blok serveru má správné hodnoty server_name:
sudo certbot --nginx -d example.com -d www.example.comSamostatný nebo Webroot (pro reverzní proxy nebo vlastní nastavení)
Pokud neběží žádný webový server, použijte standalone (váže se na port 80). Nejprve zastavte všechny služby používající port 80:
sudo systemctl stop nginx apache2 httpd
sudo certbot certonly --standalone -d example.com -d www.example.com
sudo systemctl start nginx apache2 httpdAlternativně použijte webroot, pokud jsou vaše soubory poskytovány ze známé cesty:
sudo certbot certonly --webroot -w /var/www/html -d example.com -d www.example.comCertifikáty se zástupnými znaky s DNS-01
Vyžadují se zástupnými znaky certifikáty (např. *.example.com) DNS-01. Použijte DNS plugin (Cloudflare uvedeno jako příklad):
# Ubuntu/Debian (if using APT packages instead of Snap)
sudo apt install -y python3-certbot-dns-cloudflare
# Create credentials file
sudo mkdir -p /root/.secrets
sudo nano /root/.secrets/cloudflare.ini
# Add:
# dns_cloudflare_api_token = <YOUR_TOKEN>
sudo chmod 600 /root/.secrets/cloudflare.ini
# Request wildcard + apex
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /root/.secrets/cloudflare.ini \
-d example.com -d *.example.comNasměrujte svůj webový server na cesty certifikátů vytištěné programem Certbot (obvykle v souboru /etc/letsencrypt/live/example.com/).
Povolení HTTPS a osvědčených postupů TLS
Nginx příklad
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
root /var/www/html;
index index.html index.php;
}Apache příklad
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
DocumentRoot /var/www/html
</VirtualHost>
</IfModule>Povolit požadované moduly pro Apachessl, hlavičky, přepis (v Debianu/Ubuntu: a2enmod ssl hlavičky přepis).
Automatizace obnov a monitorování
Certbot nainstaluje časovač systemd nebo úlohu cron automaticky obnovovat certifikáty přibližně v 60.–70. dni. Po nastavení vždy otestujte obnovení:
sudo certbot renew --dry-runZkontrolujte časovače systemd (pokud používáte Snap na Ubuntu/Debianu):
systemctl list-timers | grep certbotPokud váš webový server potřebuje při obnovení serveru znovu načíst server, přidejte hook pro nasazení:
sudo certbot renew --deploy-hook "systemctl reload nginx"Řešení běžných chyb v Let's Encrypt
- Výzva selhala (HTTP-01 404/403): Zajistit DNS ukazuje na správný server, port 80 je otevřený a server_name/webroot odpovídá vaší doméně.
- Port 80 blokován: Let's Encrypt vyžaduje HTTP pro HTTP-01. Dočasně jej povolte ve firewallech nebo použijte DNS-01.
- Špatný vhost: Soubor s výzvou ACME může být poskytován z jiného virtuálního hostitele. Ujistěte se, že je virtuální hostitel požadované domény aktivní a povolený.
- Za reverzní proxy/CDN: Použijte DNS-01 nebo zajistěte, aby proxy předal /.well-known/acme-challenge původu beze změny.
- Zamítnutí SELinuxu (rodina RHEL): Prohlížet protokoly auditu a upravovat kontexty pomocí semanage/restorecon v případě potřeby.
- Limity sazeb: Během testování použijte testovací server: –proveďte testování a poté přepněte do produkčního režimu.
Pokročilé použití: Zástupné znaky, vícedoménové, klíče ECDSA
Alternativní názvy předmětů (SAN)
Pro zjednodušení požádejte o více domén v jednom certifikátu management:
sudo certbot --nginx -d example.com -d www.example.com -d blog.example.comECDSA vs RSA
Klíče ECDSA jsou menší a rychlejší. Chcete-li preferovat ECDSA (podporováno většinou klientů):
sudo certbot certonly --key-type ecdsa --elliptic-curve secp384r1 --nginx -d example.comTestování fázování a bezproblémového provozu
Použijte testovací prostředí k testování automatizací bez překročení limitů rychlosti:
sudo certbot --nginx --staging -d example.comNejlepší postupy pro zabezpečení a posílení zabezpečení
- Přesměrujte HTTP na HTTPS a povolte HSTS pro striktní transport.
- Omezte verze TLS na TLSv1.2+; pokud možno upřednostňujte TLSv1.3.
- Pokud je to možné, používejte klíče ECDSA; uchovávejte soukromé klíče čitelné pouze pro uživatele root.
- Povolte sešívání OCSP pro rychlejší a soukromé kontroly odvolání.
- Automatizujte obnovení pomocí upozornění (e-mailové protokoly, monitorovací hooky).
- Bezpečně zálohujte soubor /etc/letsencrypt (certifikáty, klíče, konfigurace pro obnovení).
Scénáře a tipy z reálného světa
- Jeden web na VPS: Pro nejrychlejší nastavení použijte –nginx nebo –apache; ověřte automatické obnovení.
- Více aplikací/domén: Zvažte certifikáty SAN nebo jeden certifikát na lokalitu. Dokumentujte cesty certifikátů pro každý virtuální hostitel.
- Reverzní proxy (např. Nginx vpředu, aplikace vzadu): Ukončete TLS na proxy serveru; použijte webroot nebo DNS-01 pro vydání.
- Za Cloudflare: Buď použít Cloudflare„Plný (přísný)“ s certifikátem původu nebo si získejte Let's Encrypt přes DNS-01, aby se předešlo problémům s výzvami.
- CI/CD kanály: Pro testovací nasazení používejte staging; pro produktivní prostředí postupujte stejným způsobem, abyste se vyhnuli překvapením.
Často kladené otázky – Let's Encrypt na Linuxovém serveru
Je Let's Encrypt opravdu zdarma a prohlížeče mu důvěřují?
Ano. Let's Encrypt je široce důvěryhodná certifikační autorita, která je součástí všech hlavních prohlížečů a operačních systémů. Vydává certifikáty pro ověření domény zdarma, vhodné pro šifrování provozu a prokazování kontroly nad doménou.
Jak nastavím automatické obnovení a co když selže?
Certbot nainstaluje časovač systemd nebo úlohu cron pro obnovení kolem 60. dne. Otestujte to pomocí certbot renew –dry-run. Pokud obnovení selže, zkontrolujte protokoly v /var/log/letsencrypt/ a ujistěte se, že porty a DNS jsou správné. Přidejte hooky pro nasazení, abyste po obnovení znovu načetli webový server.
Mohu získat certifikát s wildcard u Let's Encrypt?
Ano, přes DNSPouze výzva -01. Použijte DNS plugin (např. Cloudflare, Route 53) nebo přidejte TXT záznamy ručně. Požádejte o apex (example.com) i zástupný znak (*.example.com), aby byly zahrnuty všechny hostitele.
Funguje Let's Encrypt za CDN nebo reverzní proxy?
Ano, ale HTTP-01 se může přerušit, pokud CDN zachytí výzvu. Buď povolte cestu ACME k původu, dočasně obejděte CDN během vydávání, nebo použijte DNS-01 pro spolehlivé nastavení bez veřejného odhalení portu 80.
Mám použít certifikáty RSA nebo ECDSA?
ECDSA nabízí lepší výkon a menší klíče, které moderní klienti široce podporují. Pro maximální kompatibilitu se staršími zařízeními můžete na některých vrstvách zřídit duální certifikáty, ale pro většinu webů je ECDSA (P-256 nebo P-384) vynikající výchozí volbou.
Dodržováním tohoto návodu můžete s jistotou nasadit Let's Encrypt na svůj Linuxový server, automatizovat obnovení a vynutit silné TLS. Pokud potřebujete hotové řešení s nepřetržitou podporou, YouStableJe managed hosting zajišťuje, že se vaše certifikáty a zabezpečení nikdy nestanou úzkým hrdlem.