Pouze pro návštěvníky našeho blogu Získejte další 3 měsíce zdarma + 10% slevu na tříletý plán YSBLOG10
Chyťte dohodu

Jak opravit chybu Let's Encrypt na Linuxovém serveru SSL Obnovení

Poslední aktualizace: 7. září 2026 10 min čtení Sanjeet Chauhan
Oprava chyby Let's Encrypt na Linuxovém serveru

Oprava služby Let's Encrypt na Linuxovém serveru, ověřit DNS ukazuje na server, otevřete porty 80/443, nainstalujte Certbot přes Snap, spusťte správnou metodu challenge (HTTP-01 pro běžné domény, DNS-01 pro zástupné znaky), aktualizujte konfigurace webového serveru a poté otestujte automatické obnovení pomocí certbot renew --dry-run a znovu načtěte webový server.

Pokud váš SSL Pokud se obnovení nezdaří nebo se nové certifikáty nevydají, tento podrobný návod vysvětluje, jak opravit Let's Encrypt na linuxovém serveru pomocí Certbotu.

Probereme běžné chyby, správný způsob instalace a konfiguraci webového serveru pro Apache a Nginx, DNS a kontroly firewallu, automatizace obnovy a osvědčené postupy pro připravenost k produkčnímu prostředí.


Kontrolní seznam pro rychlou diagnostiku

Před hloubkovým řešením problémů si ověřte tyto položky. Většina selhání Let's Encrypt má původ v jednom z nich.

  • DNS Záznamy A/AAAA ukazují na správnou IP adresu serveru (vyhněte se zastaralým nebo nesprávným IPv6).
  • Porty 80 (HTTP) a 443 (HTTPS) jsou otevřené a dosažitelné z internetu.
  • Webový server obsluhuje /.well-known/acme-challenge/ bez přesměrování nebo blokování během validace HTTP-01.
  • Žádný omezující záznam CAA blokující vydávání kódů Let's Encrypt.
  • Čas serveru je přesný (NTP je povoleno).
  • Použití aktuální instalace Certbotu (doporučuje se Snap) a správného pluginu (nginx, apache, webroot nebo DNS).
  • Automatické obnovení je povoleno a v pořádku (časovač systemd nebo cron).

Jak funguje validace v Let's Encrypt

Let's Encrypt používá protokol ACME k ověření kontroly nad doménou. Pochopení typů výzev vám pomůže vybrat správnou opravu.

Oprava chyby Let's Encrypt na Linuxovém serveru

HTTP-01 (nejběžnější)

ACME načte token z http://example.com/.well-known/acme-challenge/<token>Váš server musí být veřejně dostupný na portu 80 a musí poskytovat přesný obsah souboru se stavem 200. Přesměrování na HTTPS jsou v pořádku, pokud je soubor stále dosažitelný, ale složité přepisy často naruší validaci.

DNS-01 (Zástupné znaky a komplexní nastavení)

ACME kontroluje TXT záznam na adrese _acme-challenge.example.comTuto možnost vyberte při vydávání certifikátů se zástupnými znaky nebo když HTTP není možný kvůli proxy serverům, uzamčeným portům nebo vlastnímu směrování. Použijte DNS plugin pro automatizaci aktualizací TXT.

TLS-ALPN-01 (Pokročilý)

Ověřuje přes port 443 pomocí speciálního certifikátu ALPN. Užitečné pro určité proxy servery, ale ne tak vhodné pro začátečníky jako HTTP-01 nebo DNS-01.


Nainstalujte nebo opravte Certbot správným způsobem

Nejspolehlivější metodou je dnes balíček Snap. Mnoho distribučních balíčků je zastaralých a způsobují selhání.

# Remove old distro Certbot if present
sudo apt remove certbot python3-certbot-* -y 2>/dev/null || true
sudo dnf remove certbot python3-certbot-* -y 2>/dev/null || true
sudo yum remove certbot python3-certbot-* -y 2>/dev/null || true

# Install Snap (if not installed)
sudo apt update && sudo apt install -y snapd || true
sudo dnf install -y snapd || true
sudo systemctl enable --now snapd

# Install Certbot via Snap and link it
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -sf /snap/bin/certbot /usr/bin/certbot

# Verify version (should be recent)
certbot --version

Vyberte plugin, který odpovídá vašemu stacku:

  • Nginx: certbot --nginx (automatická konfigurace)
  • Apache: certbot --apache (automatická konfigurace)
  • Webroot (vlastní cesty/proxy): certbot certonly --webroot -w /var/www/html -d example.com -d www.example.com
  • Samostatný (bez spuštěného webového serveru): certbot certonly --standalone -d example.com

Oprava běžných chyb Let's Encrypt (s osvědčenými řešeními)

Připojení odmítnuto nebo vypršel časový limit na portu 80/443

Příznaky: protokoly zobrazují „Připojení odmítnuto“, „Časový limit během připojení“ nebo „Načítání …: Časový limit“.

  • Otevřete firewall:
# UFW
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

# firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
  • Zkontrolujte skupiny zabezpečení cloudu nebo firewally poskytovatelů (AWS, GCP, Azure, DigitalOcean).
  • Zajistit Nginx/Apache běží a naslouchá na správných IP adresách.

404 nebo 403 na .well-known/acme-challenge

Příčina: přepsání pravidel nebo oprávnění blokují přístup k cestě výzvy.

Opravit pro Nginx: přidejte explicitní umístění, které obchází přesměrování a ukazuje na správný webroot.

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/html;

    # Always allow ACME challenge
    location ^~ /.well-known/acme-challenge/ {
        default_type "text/plain";
        allow all;
        root /var/www/html;
    }

    # Optional: redirect others to HTTPS
    location / {
        return 301 https://$host$request_uri;
    }
}

Opravit pro Apache: Zajistěte, aby konfigurace aliasů a adresářů umožňovala čtení a nebyla blokována přepisováním.

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/html

  Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/
  <Directory "/var/www/html/.well-known/acme-challenge/">
    Options None
    AllowOverride None
    Require all granted
  </Directory>

  # If using .htaccess redirects, add an exception:
  # RewriteRule ^.well-known/acme-challenge/ - [L]
</VirtualHost>

Oprávnění: soubor s výzvou musí být čitelný webovým serverem. V systémech SELinux v případě potřeby obnovte kontexty:

sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} ;
sudo find /var/www/html -type f -exec chmod 644 {} ;
sudo restorecon -Rv /var/www/html 2>/dev/null || true

Špatně DNSZejména IPv6

Pokud publikujete záznam AAAA, ale váš server na něm ve skutečnosti nenaslouchá IPv6 adresa, ACME se může připojit přes IPv6 a selhat. Buď to opraví IPv6 na hostiteli nebo odstraňte záznam AAAA. Ověřte pomocí:

dig +short A example.com
dig +short AAAA example.com
curl -I http://example.com
curl -6 -I http://example.com  # test IPv6 path

Za CDN nebo reverzní proxy (např. Cloudflare)

Pro HTTP-01 se ujistěte, že proxy předává požadavky /.well-known/acme-challenge/ nezměněno. Dočasně nastaveno DNS na "DNS „pouze“ (bez zmocnění) během vydání nebo použití DNS-01 s pluginem API poskytovatele, aby se zcela předešlo problémům s proxy.

Vydávání bloků záznamů CAA

Zkontrolujte, zda máte omezující záznamy CAA. Musíte povolit Let's Encrypt:

dig CAA example.com

Pokud jsou k dispozici, uveďte položky jako 0 issue "letsencrypt.org"Jinak bude vydání zamítnuto.

Zkreslení hodin a NTP

ACME vyžaduje správný systémový čas. Povolte NTP a znovu synchronizujte:

timedatectl
sudo timedatectl set-ntp true
sudo systemctl restart systemd-timesyncd 2>/dev/null || true

Limity rychlosti a fázování

Pokud rychle požadujete příliš mnoho certifikátů, můžete dosáhnout limitů rychlosti Let's Encrypt. Nejprve otestujte v testovacím prostředí:

certbot certonly --nginx -d example.com --test-cert --agree-tos -m [email protected]

Jakmile je stabilní, spusťte bez --test-cert pro výrobu.

Nastavte si spolehlivé automatické obnovení

Certbot přes Snap nainstaluje časovač systemd pro obnovení. Ověřte ho a proveďte zkušební spuštění.

systemctl list-timers | grep certbot
systemctl status snap.certbot.renew.service
sudo certbot renew --dry-run

Po úspěšném obnovení serveru se webový server automaticky obnoví pomocí deploy hooku:

# Nginx
sudo certbot renew --deploy-hook "systemctl reload nginx"

# Apache
sudo certbot renew --deploy-hook "systemctl reload apache2"   # Debian/Ubuntu
sudo certbot renew --deploy-hook "systemctl reload httpd"     # RHEL/CentOS/Alma

Certifikáty platí /etc/letsencrypt/live/<domain>/ as fullchain.pem a privkey.pemUjistěte se, že vaše virtuální hostitele odkazují na tyto cesty a po vydání znovu načtěte.


Migrace nebo čištění poškozených instalací

Nahraďte zastaralý Certbot službou Snap

Pokud jste v minulosti používali distribuční balíčky, odeberte je a přepněte na Snap (jak je znázorněno dříve). Certifikáty v /etc/letsencrypt zůstat nedotčeni.

Někdy se symbolické odkazy přeruší přesunem serverů nebo ručními úpravami. Pokud ls -l /etc/letsencrypt/live/<domain> zobrazuje visící odkazy, znovu vystavte certifikát:

sudo mv /etc/letsencrypt/live/example.com /etc/letsencrypt/live/example.com.bak.$(date +%F)
sudo certbot certonly --nginx -d example.com -d www.example.com
# or use --apache / --webroot depending on your stack

Migrace certifikátů mezi servery

Zkopírujte /etc/letsencrypt a zachovat oprávnění (root:root, 600 pro soukromé klíče). Poté spusťte zkušební obnovu a ověřte:

sudo rsync -a /etc/letsencrypt/ newserver:/etc/letsencrypt/
sudo certbot renew --dry-run
sudo systemctl reload nginx || sudo systemctl reload apache2 || sudo systemctl reload httpd

Kdy použít DNS-01 a jak ji automatizovat

Použijte DNS-01 pro certifikáty se zástupnými znaky nebo když je HTTP-01 blokován proxy, WAF nebo striktními sítěmi. Automatizujte vytváření záznamů TXT pomocí DNS plugin, aby se zabránilo ručním úpravám a dlouhým oknům šíření.

# Example: Cloudflare (requires a credentials file)
sudo certbot certonly 
  --dns-cloudflare 
  --dns-cloudflare-credentials /root/.secrets/cf.ini 
  -d example.com -d *.example.com

# For other providers, use the matching --dns-*** plugin.
# Alternative lightweight client:
curl https://get.acme.sh | sh
~/.acme.sh/acme.sh --issue --dns dns_cf -d example.com -d *.example.com

Nginx a ApachePřipraveno k produkci SSL Úryvky konfigurace

Nginx Příklad

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/html;

    location ^~ /.well-known/acme-challenge/ {
        default_type "text/plain";
        root /var/www/html;
    }

    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;

    # Optional: ECDSA keys
    # ssl_certificate     /etc/letsencrypt/live/example.com-ecdsa/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/example.com-ecdsa/privkey.pem;

    root /var/www/html;
    index index.html index.php;
}

Apache Příklad

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/html
  RewriteEngine On
  RewriteRule ^.well-known/acme-challenge/ - [L]
  RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/html

  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
</IfModule>

Nejlepší bezpečnostní postupy pro Let's Encrypt v Linuxu

  • Omezení přístupu k klíčům: chmod 600 na soukromých klíčích; vlastník root:root.
  • Pro lepší výkon použijte klíče ECDSA: certbot certonly --key-type ecdsa --elliptic-curve secp384r1.
  • Monitor expirace: přidejte odlehčenou kontrolu nebo použijte externí monitory, které upozorní před 30 dny.
  • Připnout na fullchain.pem na vašem webovém serveru, nejen cert.pem, aby se předešlo problémům s řetězcem.
  • Udržujte Certbot aktualizovaný přes Snap; pravidelně spusťte certbot renew --dry-run po velkých aktualizacích operačního systému.

Proč opravovat Let's Encrypt pomocí YouStable Je jednodušší

Jako poskytovatele hostingu, YouStable optimalizuje Linuxové servery pro SSL od prvního dne. Naše manageStacky d se dodávají se správně nakonfigurovanými firewally, aktuálním Certbotem a otestovanými Nginx/Apache šablony, takže certifikáty se spolehlivě vydávají a obnovují. Pokud se raději nechcete potýkat s výzvami ACME a DNS pluginy, náš tým je pro vás může implementovat a monitorovat.

Od nuly k práci SSL: Krok za krokem

  • Bod DNS A/AAAA záznamy na IP adresu vašeho serveru a čekání na jejich šíření.
  • Otevřete porty 80/443 na operačním systému a firewallu poskytovatele.
  • Nainstalujte Certbot přes Snap a ověřte verzi.
  • Vyberte si správný plugin:
    • Jednoduché weby: certbot --nginx or certbot --apache
    • Vlastní rooty/proxy: --webroot
    • Zástupné znaky nebo za CDN: DNS plugin
  • Potvrzení použití webového serveru /etc/letsencrypt/live/<domain>/fullchain.pem a privkey.pem.
  • Obnovit Nginx/Apache; ověřte s curl -I https://example.com.
  • Povolit a otestovat obnovení pomocí certbot renew --dry-run.

Zjistěte, jak opravit chybu ERR_CONNECTION_RESET v prohlížeči Chrome


Nejčastější dotazy

Proč Certbot hlásí „Výzva selhala“ pro HTTP-01?

Časté příčiny jsou zablokovaný port 80, špatný DNS cíl, vynucený Přesměrování HTTPS které brání přístupu k /.well-known/acme-challenge/ nebo nesprávné cestě k webroot adresáři. Zpřístupněte cestu k výzvě veřejně přes HTTP a ověřte DNS/IPv6a zkuste to znovu se správným pluginem nebo --webroot cesta.

Jak automaticky obnovím certifikáty Let's Encrypt?

S Certbotem nainstalovaným přes Snap se časovač systemd spouští dvakrát denně. Potvrďte to pomocí systemctl list-timers | grep certbot, spustit certbot renew --dry-run otestovat a přidat hook pro nasazení, který po obnovení znovu načte webový server.

Mám použít HTTP-01 nebo DNS-01?

Pro standardní doménové certifikáty použijte HTTP-01, když je otevřený port 80 a web přímo obsluhuje soubory. DNS-01 pro domény se zástupnými znaky, nastavení za CDN nebo když port 80 nelze zpřístupnit. DNS-01 s pluginem poskytovatele automatizuje vytváření TXT záznamů.

Jak opravím chyby řetězce nebo „nedůvěryhodný certifikát“?

Nasměrujte svůj webový server na fullchain.pem (nejen cert.pem). Znovu načíst Nginx/ApacheNa velmi starých klientech může být úložiště důvěryhodných certifikátů zastaralé; aktualizujte operační systém nebo použijte moderní zařízení. Let's Encrypt aktuálně vydává problémy z ISRG Root X1.

Existuje alternativa k Certbotu?

Ano. Lehcí klienti mají rádi acme.sh or lego fungují dobře a podporují mnoho lidí DNS poskytovatelé. Pokud si je vyberete, zakažte obnovení Certbotu, abyste předešli konfliktům, a proces obnovení jasně zdokumentujte.

Zanechat komentář

Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena *.

Přejděte na začátek