Tanúsítványok automata frissítése
A Certbot olyan tanúsítványokat állít ki, melyek 3 hónapig érvényesek. Ezek a tanúsítványok a lejárati dátumot megelőző 30-ik naptól kezdve frissíthetőek. A frissítés manuális lépései megtalálhatóak itt.
Azonban lehetőség van arra, hogy a tanúsítványok automatikusan frissüljenek.
Ehhez az alábbi feltételeknek kell teljesülnie az EC2 Instance-unk esetében:
- A 80-as port legyen nyitva a külvilág számára.
- A 443-as port legyen nyitva a külvilág számára.
- A 80-as és 443-as portot akkor szabad mindenki számára kinyitnunk, ha domainjeink csak kliensoldali tanúsítvány segítségével érhetőek el.
A fenti feltételek teljesülése esetén az alábbi lépésekkel konfigurálható az automata tanúsítvány frissítés.
1. Update script létrehozása
Először is a tanúsítvány frissítéséhez szükséges parancsokból csináljunk egy bash scriptet:
-
Hozzunk létre az
/opt/project/infrastructure/mappába egycert-update.shfájlt.A
cert-update.shfájl tartalma legyen az alábbi:#!/bin/sh logger "[CERT UPDATE] - Stopping HAProxy" service haproxy stop logger "[CERT UPDATE] - Starting Nginx" service nginx start logger "[CERT UPDATE] - Certification renew process STARTED" certbot renew logger "[CERT UPDATE] - Certification renew process FINISHED" logger "[CERT UPDATE] - Stopping Nginx" service nginx stop logger "[CERT UPDATE] - Copying certificate" cat /etc/letsencrypt/live/${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io/fullchain.pem /etc/letsencrypt/live/${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io/privkey.pem | tee /etc/ssl/${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io/${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io.pem logger "[CERT UPDATE] - Starting HAProxy" service haproxy start logger "[CERT UPDATE] - Reload HAProxy configuration" service haproxy reloadAz alábbi paramétereknél értelemszerűen azokat az értékeket kell megadni, amit a tanúsítvány generáló script-ben is megadtunk.
- A
${projekt}placeholder helyére a domain létrehozásakor megadott projekt azonosítót kell behelyettesíteni. - Az
${ügyfél}placeholder helyére az ügyfél nevét kell behelyettesíteni (Pl.:granit-bank,erste,vodafone). - A
${környezet}placeholder helyére a domain létrehozásakor megadott környezet azonosítót kell behelyettesíteni.
Példa a
[CERT UPDATE] - Copying certificatealatti parancsra - A
-
Adjunk execute jogot a fájlhoz a
rootfelhasználó számára az alábbi paranccsal:
2. Cron esemény konfigurálása
Ahhoz, hogy a tanúsítványokat frissítő script megfelelő időközönként automatikusan lefusson definiálnunk kell egy operációs rendszer szintű cron eseményt:
Az /etc/crontab fájlhoz text editorral (Pl.: Vi/VIM) adjunk hozzá egy új sort:
A fenti sor jelentése
Minden hónap 1., 11. és 21.-ik napján 0 óra 0 perckor fusson le a root felhasználó nevében az /opt/project/infrastructure/cert-update.sh fájlban található script.
A cert-update.sh scripthez tartozó logok pedig a /var/log/cert-update.log fájlba kerüljenek.
3. Logok olvasása
Ha szeretnénk ellenőrizni a tanúsítvány frissítés lefutását a logokban, akkor a /var/log/syslog fájlban található [CERT UPDATE] kezdetű logbejegyzéseket kell keresnünk.
Ezen felül a Certbot saját logjait a /var/log/letsencrypt/letsencrypt.log fájlban találjuk.
Operációs rendszer specifikus logfájlok
Fontos, hogy /var/log/syslog fájl Ubuntu operációs rendszer esetén érvényes útvonal.
Más operációs rendszerek esetén a logfájlok neve és lokációja különböző lehet.
Pl.: Redhat esetén a logfájl: /var/log/messages