Če spletno stran poganjaš na lastnem VPS ali namenskem strežniku, brezplačno potrdilo Let’s Encrypt pridobiš s programom Certbot. Certbot opravi preverjanje domene, potrdilo nastavi v spletnem strežniku in poskrbi za samodejno podaljševanje. Na gostovanju cPanel to ni potrebno, tam isto opravi AutoSSL.
Predpogoji
- Zapis A domene (in poddomene
www) kaže na naslov IP strežnika. - V požarnem zidu strežnika so odprta vrata 80 in 443. Let’s Encrypt domeno preveri na vratih 80, glej: Kako nastavim požarni zid na svojem VPS?
- Na spletnem strežniku (Apache ali Nginx) je domena že nastavljena in dosegljiva prek HTTP.
- Pravice
rootalisudo.
Namestitev Certbota
AlmaLinux, Rocky Linux, CloudLinux (8, 9, 10):
dnf install epel-release
dnf install certbot python3-certbot-apache # pri Apache
dnf install certbot python3-certbot-nginx # pri Nginx
Debian, Ubuntu:
apt update
apt install certbot python3-certbot-apache # pri Apache
apt install certbot python3-certbot-nginx # pri Nginx
Pridobitev potrdila
Nginx:
certbot --nginx -d pelda.hu -d www.pelda.hu
Apache:
certbot --apache -d pelda.hu -d www.pelda.hu
Ob prvem zagonu Certbot zahteva tvoj e-poštni naslov (nanj pošlje obvestilo, če je v zvezi z računom treba kaj narediti) in sprejem pogojev uporabe. Nato opravi preverjanje, da izdati potrdilo in ga vpiše v nastavitve spletnega strežnika. Na koncu ponudi tudi preusmeritev zahtev HTTP na HTTPS.
Če ne želiš, da se dotakne nastavitev spletnega strežnika
Z ukazom certonly Certbot potrdilo le pridobi, nastavitev spletnega strežnika pa prepusti tebi. V načinu --webroot preverjalno datoteko postavi v korenski imenik spletne strani:
certbot certonly --webroot -w /var/www/pelda.hu -d pelda.hu -d www.pelda.hu
Datoteke potrdila pridejo v imenik /etc/letsencrypt/live/pelda.hu/:
| Datoteka | Vsebina | Kam spada? |
|---|---|---|
fullchain.pem |
potrdilo in vmesno potrdilo | Nginx: ssl_certificate, Apache: SSLCertificateFile |
privkey.pem |
zasebni ključ | Nginx: ssl_certificate_key, Apache: SSLCertificateKeyFile |
cert.pem |
le potrdilo | same je ne uporabljaj, ker v njej manjka vmesno potrdilo |
Zakaj je fullchain.pem prava izbira, razloži članek o vmesnem potrdilu.
Samodejno podaljševanje
Certbot, nameščen iz paketa, prinese tudi časovnik (systemd timer), ki dvakrat na dan preveri, ali je treba podaljšati katero od potrdil. V Debianu in Ubuntuju se zažene sam, v AlmaLinux, Rocky Linux in CloudLinux pa ga je treba vklopiti:
systemctl enable --now certbot-renew.timer
Preveri, ali časovnik teče:
systemctl list-timers | grep certbot
Podaljšanje poskusno, brez izdaje pravega potrdila, preizkusiš takole:
certbot renew --dry-run
Če je treba spletni strežnik po podaljšanju znova naložiti (v načinu certonly), ukaz navedi pri podaljšanju:
certbot renew --deploy-hook "systemctl reload nginx"
Potrdila Let’s Encrypt trenutno veljajo 90 dni, od februarja 2027 64, od februarja 2028 pa 45 dni (glej: Zakaj potrdila SSL ne veljajo več eno leto?). Privzeta logika podaljševanja v Certbotu se temu prilagaja. Če pa v lastnem skriptu podaljšuješ v fiksnih presledkih (na primer vsakih 60 dni), to spremeni: krajša potrdila bi do takrat že potekla. Certbot posodabljaj.
O ročnih korakih podaljšanja in iskanju napak govori članek Ročno podaljšanje potrdila Let’s Encrypt iz ukazne vrstice.
Uporabni ukazi
# Potrdila na strežniku in njihov potek
certbot certificates
# Dodajanje domene obstoječemu potrdilu
certbot --nginx --cert-name pelda.hu -d pelda.hu -d www.pelda.hu -d bolt.pelda.hu
# Brisanje potrdila
certbot delete --cert-name pelda.hu
Plačljivo potrdilo z ACME
Certbot ne deluje le z Let’s Encrypt. Če si na portalu za stranke kupil plačljivo potrdilo z naročnino ACME, na strani storitve najdeš vrednosti Server URL, EAB MAC ID in EAB MAC key. Z njimi Certbot plačljivo potrdilo pridobiva in podaljšuje enako samodejno:
certbot --nginx --server <Server URL> \
--eab-kid <EAB MAC ID> --eab-hmac-key <EAB MAC key> \
-d pelda.hu -d www.pelda.hu
O pridobitvi potrdila wildcard Let’s Encrypt s preverjanjem prek DNS govori ločen članek.