Kihagyás

Tanúsítványok létrehozása

Az alábbi leírás azt hivatott kifejteni, hogyan lehetséges a projekt életciklusa során, új domain-ek esetén, frissítés helyett teljesen új tanúsítványokat igényelni a certbot -tól.

Ez a dokumentáció feltételezi, hogy a Tesztkörnyezet létrehozása dokumentációnak megfelelően van konfigurálva a HAProxy, és a tanúsítványhoz szükséges mappák is ennek megfelelően vannak létrehozva.

  1. Amennyiben fut a HAProxy, akkor állítsuk le:

    service haproxy stop
    

  2. Indítsuk el az Nginxet az alábbi paranccsal:

    service nginx start
    
  3. Az domainjeinkhez a tanúsítványokat a Certbot állítja ki, amit az alábbi paranccsal tudunk kezdeményezni:

    A -d kapcsoló segítségével minden domain nevet soroljunk fel amihez tanúsítványt szeretnénk. (Azokat is fel kell sorolni amikhez már létezett korábban tanúsítvány.)

    Egy lehetséges példa, ami csak a client, admin és maildev-et tartalmazza, de szabjuk testre a parancsot annak mentén, hogy milyen domainek kerültek felvételre.

    sudo certbot --cert-name ${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io --nginx -d admin.${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io -d client.${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io -d partner.${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io -d wiki.${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io -d maildev.${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io -d keycloak.${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io -d bot.${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io
    
    • 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.

    Kötelezően kinyitandó portok

    Amennyiben a VM létrehozása során a Security Group definiálása során nem nyitottuk ki a 80 és 443-as pontot mindenki számára, akkor a certbot parancs kiadása idejére ezt tegyük meg, egyébként nem lesz sikeres a futása.

    Példa

    sudo certbot --cert-name semiproduct.intuitech.develop.dev.gbsolutions.io --nginx -d client.semiproduct.intuitech.develop.dev.gbsolutions.io -d admin.semiproduct.intuitech.develop.dev.gbsolutions.io -d partner.semiproduct.intuitech.develop.dev.gbsolutions.io -d wiki.semiproduct.intuitech.develop.dev.gbsolutions.io -d maildev.semiproduct.intuitech.develop.dev.gbsolutions.io -d keycloak.semiproduct.intuitech.develop.dev.gbsolutions.io -d bot.semiproduct.intuitech.develop.dev.gbsolutions.io
    

    Certbot kérdések a tanúsítvány létrehozása során

    A Certbot a generálás során az alábbi kérdésekre vár tőlünk választ:

    Enter email address (used for urgent renewal and security notices)
    (Enter 'c' to cancel):
    
    Ennél a kérdésnél adjuk meg a projekt számára létrehozott email group címét. Erre az email címre fognak érkezni a tanúsítványok lejáratával kapcsolatos értesítések.
    Please read the Terms of Service at
    https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
    agree in order to register with the ACME server. Do you agree?
    
    Itt válaszoljunk y-al.
    Would you be willing, once your first certificate is successfully issued, to
    share your email address with the Electronic Frontier Foundation, a founding
    partner of the Let's Encrypt project and the non-profit organization that
    develops Certbot? We'd like to send you email about our work encrypting the web,
    EFF news, campaigns, and ways to support digital freedom.
    
    Itt válaszoljunk n-el.

    Ha mindent jól csináltunk az alábbi üzenettel kezdődő eredményt kell látnunk:

    result:
    Successfully received certificate.
    ...
    

    nginx restart failed hiba a generálás során

    Amennyiben a tanúsítványok létrehozása során az alábbihoz hasonló hibát kapjuk, nyugodtan ignorálhatjuk:

    The certificate was saved, but could not be installed (installer: nginx). After fixing the error shown below, try installing it again by running:
        certbot install --cert-name semiproduct.intuitech.develop.dev.gbsolutions.io
        nginx restart failed:
        nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 64 
    

  4. Ezt követően leállíthatjuk az Nginxet:

    service nginx stop
    

  5. Hozzuk létre az /etc/ssl könyvtárban a domainünkhöz tartozó mappát:

    cd /etc/ssl
    
    mkdir ${projekt}.${ügyfél}.${környezet}.dev.gbsolutions.io
    
  6. A ${projekt} placeholder helyére a domain létrehozásakor megadott projekt azonosítót kell behelyettesíteni.

  7. Az ${ügyfél} placeholder helyére az ügyfél nevét kell behelyettesíteni (Pl.: granit-bank, erste, vodafone).
  8. A ${környezet} placeholder helyére a domain létrehozásakor megadott környezet azonosítót kell behelyettesíteni.

  9. Majd fésüljük össze a fullchain.pem és privkey.pem fájlokat és másoljuk át az így előállt .pem fájlt az /etc/ssl/ mappa alá az alábbi paranccsal:

    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
    

    • 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

    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   
    
  10. Végül indítsuk el és frissítsük a HAProxy-t:

    service haproxy start
    

    service haproxy reload