Let's Encrypt tanúsítvány igénylése Certbottal (Apache, Nginx)

Ha saját VPS-en vagy dedikált szerveren futtatja a weboldalát, az ingyenes Let’s Encrypt tanúsítványt a Certbot programmal igényelheti. A Certbot elvégzi a domain-validációt, beállítja a tanúsítványt a webszerverben, és gondoskodik az automatikus megújításról. A cPanel tárhelyeken erre nincs szükség, ott az AutoSSL végzi ugyanezt.

Előfeltételek

  • A domain (és a www aldomain) A rekordja a szerver IP-címére mutat.
  • A szerver tűzfalán nyitva van a 80-as és a 443-as port. A Let’s Encrypt a 80-as porton ellenőrzi a domaint, lásd: Hogyan állítsak be tűzfalat a VPS-emen?
  • A webszerveren (Apache vagy Nginx) már be van állítva a domain, és HTTP-n elérhető.
  • root vagy sudo jogosultság.

A Certbot telepítése

AlmaLinux, Rocky Linux, CloudLinux (8, 9, 10):

dnf install epel-release
dnf install certbot python3-certbot-apache   # Apache esetén
dnf install certbot python3-certbot-nginx    # Nginx esetén

Debian, Ubuntu:

apt update
apt install certbot python3-certbot-apache   # Apache esetén
apt install certbot python3-certbot-nginx    # Nginx esetén

A tanúsítvány igénylése

Nginx:

certbot --nginx -d pelda.hu -d www.pelda.hu

Apache:

certbot --apache -d pelda.hu -d www.pelda.hu

Az első futtatáskor a Certbot kéri az e-mail-címét (erre küld értesítést, ha a fiókkal kapcsolatban teendő van), és a felhasználási feltételek elfogadását. Ezután elvégzi a validációt, kiállíttatja a tanúsítványt, és beírja a webszerver beállításaiba. Végül felajánlja a HTTP-kérések HTTPS-re irányítását is.

Ha a webszerver beállításához nem szeretné, hogy hozzányúljon

A certonly paranccsal a Certbot csak igényli a tanúsítványt, a webszerver beállítását Önre bízza. A --webroot módban a validációs fájlt a weboldal gyökérkönyvtárába teszi:

certbot certonly --webroot -w /var/www/pelda.hu -d pelda.hu -d www.pelda.hu

A tanúsítvány fájljai a /etc/letsencrypt/live/pelda.hu/ könyvtárba kerülnek:

Fájl Tartalma Hová kell?
fullchain.pem a tanúsítvány és a köztes tanúsítvány Nginx: ssl_certificate, Apache: SSLCertificateFile
privkey.pem a privát kulcs Nginx: ssl_certificate_key, Apache: SSLCertificateKeyFile
cert.pem csak a tanúsítvány önmagában ne használja, mert hiányzik belőle a köztes tanúsítvány

Hogy miért a fullchain.pem a helyes választás, azt a köztes tanúsítványról szóló cikk magyarázza el.

Automatikus megújítás

A csomagból telepített Certbot egy időzítőt (systemd timer) is hoz, amely naponta kétszer ellenőrzi, kell-e megújítani valamelyik tanúsítványt. Debianon és Ubuntun ez magától elindul, AlmaLinuxon, Rocky Linuxon és CloudLinuxon viszont be kell kapcsolni:

systemctl enable --now certbot-renew.timer

Ellenőrizze, hogy az időzítő fut:

systemctl list-timers | grep certbot

A megújítást próbaképpen, éles tanúsítvány kiadása nélkül így tesztelheti:

certbot renew --dry-run

Ha a megújítás után a webszervert újra kell tölteni (certonly módban), adja meg a parancsot a megújításnál:

certbot renew --deploy-hook "systemctl reload nginx"

A Let’s Encrypt tanúsítványai jelenleg 90 napig érvényesek, 2027 februárjától 64, 2028 februárjától 45 napig (lásd: Miért nem érvényesek már egy évig az SSL tanúsítványok?). A Certbot alapértelmezett megújítási logikája ehhez igazodik. Ha azonban saját szkriptben fix időközönként (például 60 naponta) újít meg, állítsa át: a rövidebb tanúsítványok addigra már lejárnának. A Certbotot tartsa naprakészen.

A megújítás kézi lépéseiről és hibakereséséről a Let’s Encrypt tanúsítvány kézi megújítása parancssorból cikk szól.

Hasznos parancsok

# A szerveren lévő tanúsítványok és lejáratuk
certbot certificates

# Egy domain hozzáadása egy meglévő tanúsítványhoz
certbot --nginx --cert-name pelda.hu -d pelda.hu -d www.pelda.hu -d bolt.pelda.hu

# Egy tanúsítvány törlése
certbot delete --cert-name pelda.hu

Fizetős tanúsítvány ACME-vel

A Certbot nemcsak a Let’s Encrypttel működik. Ha az Ügyfélportálon ACME-előfizetésű fizetős tanúsítványt vásárolt, a szolgáltatás oldalán megtalálja a Server URL, az EAB MAC ID és az EAB MAC key értékét. Ezekkel a Certbot ugyanúgy automatikusan igényli és megújítja a fizetős tanúsítványt:

certbot --nginx --server <Server URL> \
  --eab-kid <EAB MAC ID> --eab-hmac-key <EAB MAC key> \
  -d pelda.hu -d www.pelda.hu

A wildcard tanúsítványok igényléséről külön cikkünk szól.