« Vissza

Hogyan tegyük biztonságossá az Apache- ot Let’s Encrypt segítségével az Ubuntu 20.04- es verzión?

VPS

VPS csomagjaink

 


Előszó

A Let’s Encrypt egy ún. tanúsítvány kibocsátó, mely ingyenes SSL/TLS tanúsítványt biztosít és installál, lehetővé téve, hogy a webszerverek a böngészővel titkosított HTTPS protokollon keresztül tudjanak kommunikálni. Leegyszerűsíti a folyamatot azzal, hogy biztosít egy szoftver klienst, az ún. Certbot- ot, amely automatizálni igyekszik a legtöbb (ha nem is az összes) szükséges lépést ehhez, és a tanúsítvány biztosításának  és telepítésének egész folyamata teljesen automatizált ennél fogva az Apache-on és Nginx-en.

Ebben a tájékoztató jellegű cikkben a Certbot- ot használjuk ahhoz, hogy bemutassuk, hogyan lehetséges az ingyenes SSL tanúsítvány beállítása Apache- on, az Ubuntu 20.04– es verziójában és lehetővé tegyük, hogy a tanúsítvány megújítási folyamata is teljesen automatikusan működjön rajta. 

Ez a bemutató különböző virtuális hoszt fájlokat használ az Apache alapértelmezett konfigurációs fájljai helyett azon beállítások elvégzése érdekében, melynek végeredményeképpen a weboldal Let’s Encrypt tanúsítvánnyal védetté válik. Azt javasoljuk, hogy készítsen új Apache virtuális hoszt fájlokat minden egyes domainhez, amely a szerveren kerül hosztolásra, mert ez segít elkerülni a gyakori hibákat és fenntartja az alapértelmezett konfigurációs fájlokat tartalék beállításokként. 

Előfeltételek

Ahhoz, hogy követni tudja bemutatónkat, a következőkre lesz szüksége:

  • Egy regisztrált domain név. Ez azért kell, mert a bemutatónk a your_domain nevet fogja használni példaként (ahol ezt látja a kódokban, oda az Ön által regisztrált domain nevet kell írnia). A mi felületünkön is van lehetőség domain regisztrációra, melyhez a következő cikkek nyújtanak segítséget:

          https://www.rackhost.hu/tudasbazis/domain/a-hu-s-domain-regisztracio-folyamata/

          https://www.rackhost.hu/tudasbazis/domain/a-nem-hu-s-domain-regisztracio-folyamata/

  • A következő, két darab DNS rekord beállítása, melyek felvételéhez az alábbi cikkünk nyújt útmutatást:

          https://www.rackhost.hu/tudasbazis/domain/hogyan-allithatom-be-a-domainhez-tartozo-rekordokat/

  1. „A” rekord a your_domain hosztnévhez, amely a szerver IP címére mutat
  2. „A” rekord www.your_domain hosztnévhez, amely a szerver IP címére mutat szintén

    • Egy feltelepített Apache, melyhez a “Hogyan telepítsünk Apache- ot Ubuntu 20.04- re” nevű cikk nyújt segítséget. Továbbá győződjön meg róla, hogy létre vannak hozva a virtuális hoszt fájlok a domainhez. Ez        a bemutató a következő példát fogja használni: /etc/apache2/sites-available/domain.conf

1. lépés – A Certbot telepítése

Ahhoz, hogy SSL-tanúsítványhoz jussunk a Let’s Encrypt segítségével, először telepítenünk kell a Certbot szoftvert a szerverre. Az alapértelmezett Ubuntu tárolót fogjuk használni.

Két csomagra lesz szükségünk: certbot és python3-certbot-apache. Ez utóbbi egy olyan bővítmény, amely integrálja a Certbot- ot az Apache- ba, lehetővé téve, hogy egyetlen paranccsal biztosítsa a tanúsítványt és konfigurálja a HTTPS- t a webszerveren. Ez a parancs a következő:

A rendszer kéri, hogy erősítse meg a telepítést az Y, majd az ENTER gomb megnyomásával.

A Certbot most már telepítve van a szerverre. A következő lépésben ellenőrizni kell az Apache konfigurációját annak érdekében, hogy meggyőződjünk arról, hogy a virtuális gép megfelelően van beállítva. Ez fogja biztosítani azt, hogy a certbot kliens szkriptje képes lesz arra, hogy észlelje a domain nevet és újrakonfigurálja a webszervert, hogy automatikusan alkalmazni tudja az újonnan generált SSL tanúsítványt.

2. lépés – Ellenőrizd  az Apache konfigurációját

Annak érdekében, hogy az SSL tanúsítványhoz automatikusan hozzáférhessen a Certbot és konfigurálja azt a webszerveren, arra van szüksége, hogy megtalálja a helyes virtuális hosztot az Apache konfigurációs fájljaiban. A szerver domain neve a ServerName és ServerAlias direktívákból kerülnek lehívásra a VirtualHost konfigurációs blokkon belülről. 

Ha követte a virtuális hoszt telepítési lépésének útmutatója Apache- ban nevű cikket, akkor rendelkeznie kell egy VirtualHost blokkal a domainhez a /etc/apache2/sites-available/your_domain.conf helyen a megfelelően beállított ServerName és ServerAlias értékekkel.

Ahhoz, hogy ezt ellenőrizhesse, nyissa meg a virtuális hoszt fájlt a domainhez kapcsolódóan a nano vagy más szövegszerkesztő használatával. Ezen parancsot használja:

Keresse meg a létező ServerName és ServerAlias sorokat. Így kell kinézniük:

Ha van ServerName és ServAlias beállítása, amely a fenti képen látható módon néz ki, akkor bezárhatja a szövegszerkesztőt és tovább haladhat a következő lépéssel. Ha nano- t használ, akkor a következő billentyűparancsokkal léphet ki: CTRL+X, majd Y és ENTER gomb a megerősítéshez.

Amennyiben a jelenlegi virtuális hoszt beállítás nem így néz ki, a fentiek szerint frissítse azt. Ha ez készen van, mentse el a fájlt és zárja be a szövegszerkesztőt. Ezt követően futtassa le a következő parancsot, hogy a változtatásokat érvényesítse:

A Syntax OK feliratot kell visszakapniuk válaszként a parancsra. Ha hibára fut, akkor nyissa meg újra a virtuális hoszt fájlt és ellenőrizze, hogy van- e bármilyen elgépelés benne vagy hiányzó karakter. Amikor viszont a konfigurációs fájl szintaxisa helyes, töltse be újra az Apache- ot, hogy a változtatások életbe lépjenek. Ezzel a paranccsal lehet újratölteni:

Ezen beállítások segítségével a Certbot képes lesz arra, hogy megtalálja a helyes VirtualHost blokkot és frissítse azt.

A következőkben frissíteni fogjuk a tűzfalat, hogy engedélyezze a HTTPS- forgalmat.

3.lépés – HTTPS engedélyezése a tűzfalon keresztül

Amennyiben engedélyezve van az UFW tűzfal, ahogy az Előszó útmutatásai ajánlják, akkor csak el kell végezni a szükséges beállításokat, hogy a HTTPS- forgalom engedélyezve legyen. A telepítés során az Apache regisztrál néhány különböző UFW alkalmazásprofilt. Használhatjuk az Apache Full profilt, hogy a szerveren engedélyezve legyen mind a HTTP és a HTTPS forgalom is.

Ahhoz, hogy ellenőrizhesse, hogy jelenleg milyen forgalom van engedélyezve a szerverén, a következő parancsot használja:

Ha követte az egyik Apache telepítéssel kapcsolatos útmutatónkat, akkor a parancsra kapott eredmény az alábbi módon (vagy ahhoz hasonlóan) kell, hogy kinézzen, ami azt is jelenti, hogy a HTTP forgalom csak a 80- as porton engedélyezett:

A HTTPS-forgalom további biztosításához engedélyezze az „Apache Full” profilt, és törölje a redundáns „Apache” profilt:

A státusz jelenleg így kell, hogy kinézzen a következő parancs eredményeként:

Most már minden készen áll ahhoz, hogy futtassa a Certbot- ot és hozzájusson a tanúsítványhoz.

4.lépés – Az SSL tanúsítványhoz való hozzáférés

A Certbot nagyon sokféle lehetőséget biztosít az SSL tanúsítvány beszerzésére különféle bővítményeken keresztül. Az Apache bővítmény gondoskodik az Apache beállításáról és bármikor újratölti a konfigurációt, amikor az szükséges. Ahhoz, hogy ezen bővítményt használni tudja, a következő parancsot kell használni:

Ez a szkript arra kéri Önt, hogy válaszoljon különféle kérdésekre annak érdekében, hogy az SSL tanúsítvány konfigurálásra kerülhessen. Első körben egy érvényes, működő email címet fog kérni. Ez az email fog arra szolgálni, hogy értesítéseket kaphasson megújításra vonatkozóan vagy biztonsági figyelmeztetéseket. Ez a panel így néz ki:

Miután megad egy valid email címet, nyomjon egy ENTER gombot, hogy tovább tudjon haladni a következő lépéssel. Ezt követően arra kéri Önt a rendszer, hogy fogadja el a Let’s Encrypt felhasználási feltételeit. Meg tudja erősíteni úgy, hogy nyom egy „A” betűt, majd nyomja meg az ENTER gombot.

Ezt követően megkérdezi Önt a rendszer, hogy szeretne- e különféle híreket és egyén információkat kapni az Electronic Frontier Foundation cégtől. Ha nem szeretne feliratkozni erre a kontentre, akkor nyomjon egy „N” gombot. Ha pedig szeretne, egy „Y” gombot, majd egy ENTER- t, hogy tovább tudjon lépni.

Következő lépésben a rendszer megkérdezi Önt, hogy melyik domainnel szeretné aktiválni a HTTPS- t. A domainek listái automatikusan kerülnek betöltésre az Apache virtuális hoszt konfigurációjából, éppen ezért fontos, hogy rendelkezzen a megfelelő ServerName és ServerAlias beállításokkal. Ha szeretné az összes felkínált domainhez beállítani a HTTPS- t (ez az ajánlott), akkor hagyja figyelmen kívül ezt a kérdést és nyomjon egy ENTER- t a folytatáshoz. Ellenkező esetben válassza ki a domaint, melyhez engedélyezni szeretné a HTTPS- t a megfelelő számok felsorolásával, melyeket vesszővel és/vagy szóközzel választ el, majd ez után nyomja meg az ENTER gombot.

A végeredmény így kell, hogy kinézzen:

Ezután a rendszer felkéri, hogy válassza ki, hogy szeretné-e átirányítani a HTTP forgalmat HTTPS-re. Gyakorlatban ez azt jelenti, hogy ha valaki titkosítatlan csatornán keresztül akarja meglátogatni a weboldalát (HTTP), akkor ez automatikusan át fogja irányítani őket a weboldal HTTPS címére. Válassza a 2 -es számot, hogy engedélyezze az átirányítást, vagy válassza az 1 -es számot, ha szeretné megtartani a HTTP -t és HTTPS -t két, különböző módszerként, amelyekkel el tudják érni a weboldalát. 

Ezen lépést követően a Certbot konfigurációja befejeződött, és megjelenik az utolsó megjegyzés az új tanúsítvánnyal kapcsolatban, mégpedig az, hogy hol található a generált fájl, és hogyan tesztelheti a konfigurációt egy külső eszközzel, amely elemzi a tanúsítvány hitelességét:

A tanúsítvány most már települt és betöltődött az Apache konfigurációjába. Próbálja újratölteni a weboldalát a https:// előtaggal és figyelje meg a böngészőnek a weboldal biztonságát jelző kis ikonját. Azt kell mutatnia, hogy a weboldala megfelelően védett, általában azzal jelzi ezt, hogy egy kis lakat jelenik meg a címsorban. 

Használhatja az SSL Labs Server Test oldalt, hogy ellenőrizze a tanúsítvány minősítését és hozzájuthasson egyéb információkhoz is róla egy külső szolgáltatás szemszögéből. 

A következő és egyben utolsó lépésben teszteljük a Certbot automatikus megújítási funkcióját, mely garantálja azt, hogy a tanúsítvány automatikusan megújuljon a lejárati dátum előtt.

5. lépés – A Certbot auto- megújítási funkciójának tesztelése

A Let’s Encrypt tanúsítványai csak 90 napig érvényesek. Ez arra ösztönzi a felhasználókat, hogy automatizálják a tanúsítvány megújítási folyamatát, továbbá, hogy biztosítsák, hogy a kihasználatlan tanusítványok vagy az ellopott kulcsok lejárjanak inkább előbb, mint utóbb.

Ahhoz, hogy ellenőrizhesse a szolgáltatás státuszát és megbizonyosodjon arról, hogy aktív és fut, a következő parancsot használja:

Ehhez hasonló eredményt kell kapnia:

Ahhoz, hogy a megújítási folyamatot tesztelje, futtathat egy dry- run parancsot a Certbottal:

Ha nem fut hibára, akkor minden rendben van. Amikor szükséges, a Certbot megújítja a tanúsítványát és újratölti az Apache- ot, hogy az alkalmazza a változásokat. Ha az automatikus megújítási funkció valaha is kudarcba fullad, a Let’s Encrypt küld Önnek egy üzenetet az email címre, amelyet megadott a korábbi lépésben és figyelmezteti Önt, hogy mikor fog lejárni a tanúsítvány.

Konklúzió

Ebben a bemutatóban telepítette a Let’s Encrypt klienst, a Certbotot, konfigurált és installált egy SSL tanúsítványt a domainjéhez, továbbá megerősítette, hogy a Certbot automatikus megújítási szolgáltatása aktívvá váljon. Amennyiben további kérdése merülne fel a Certbot használatával kapcsolatban, érdemes annak dokumentációját tanulmányozni.

Szeretne VPS-t bérelni?

A Rackhost kínálatában biztosan megtalálja az Önnek megfelelő csomagot.

Megnézem

Kapcsolódó cikkek