Kihagyás

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:

  1. Hozzunk létre az /opt/project/infrastructure/ mappába egy cert-update.sh fájlt.

    A cert-update.sh fá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 reload
    

    Az 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 certificate alatti parancsra

    cat /etc/letsencrypt/live/semiproduct.intuitech.develop.dev.gbsolutions.io/fullchain.pem /etc/letsencrypt/live/semiproduct.intuitech.develop.dev.gbsolutions.io/privkey.pem | tee /etc/ssl/semiproduct.intuitech.develop.dev.gbsolutions.io/semiproduct.intuitech.develop.dev.gbsolutions.io.pem   
    
  2. Adjunk execute jogot a fájlhoz a root felhasználó számára az alábbi paranccsal:

    chmod 700 cert-update.sh
    

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:

0 0 1,11,21 * * root /opt/project/infrastructure/cert-update.sh >> /var/log/cert-update.log 2>&1

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