Apró hálózatom kozmetikázásának következő állomása az, hogy ellátom a különböző szervereket, szolgáltatásokat saját domain névvel, hogy úgy nézzen ki, olyan csinálta, aki ért hozzá. Persze önmagában egy alias még nem kihívás, használjunk SSL/TLS hitelesítést is, ahol csak lehet.
Első lépésben vettem magamnak saját publikus domain nevet, ezt több módon is megtehetjük, én a GoDaddy-nél vettem, mert szeretem a kihívásokat:
- a kosár funkcionalitás nem működik vásárláskor
- vagy mégis, csak nem látszik, mert fizetéskor a fizetendő összeg többszörösét kellett volna hirtelen leszurkolni
- aminek az az oka, hogy érdemesebb előbb a profilban kitölteni a lakcímedet, mert bizonyos domain nevek (.eu és társai) csak korlátozásokkal vehetőek igénybe
Amire még szükségünk lesz, az egy API hozzáférés, hogy tudjuk babrálni a DNS bejegyzéseinket is, ezt a GoDaddy-nél pár kattintásból megoldhatjuk, végén kapunk egy secret-et és egy key-t, ezekre a certificate beszerzésénél lesz szükségünk.
Ha valakinek van bevált alternatívája, írja meg kommentben.
Hirdetés
Nginx Proxy Manager a http(s) szolgáltatásokhoz
Nem szeretnék minden egyes webes felülettel rendelkező app-ot és egyebet külön abajgatni, ezért mindent megpróbálok egy proxy mögé rakni, ahol mindent egy helyen tudok kezelni. Ehhez az Nginx Proxy Manager-t fogom használni, amit láthatunk, hogy nem hibátlan, de a célnak megfelel.
A proxy container-ben fog futni a mini gépemen, ehhez előbb telepíteni kell a podman-t a gépre, majd jöhet is a container beállítása, amit vanilla módon végzünk most, nem bonyolítjuk az életünket.
Következő lépésben elébe megyünk a bajnak, mert hamar gondban leszünk, ha nem tákolunk egy kicsit. Van egy GoDaddy-vel kapcsolatos bug, ezt fogjuk megkerülni.
A gépen /etc/nginx-proxy-manager directory-ba fogok pakolni mindent, a javításhoz szükségünk lesz az eredeti certbot-dns-plugins.json fájlra, ebben kell a GoDaddy plugin verzióját beállítanunk "~=2.8.0"-ra.
Most már jöhet a container izzítása, néhány dolgot kell csak megadnunk neki, mint mondtam, legegyszerűbb felállásban fogjuk használni.
Pár megjegyzés:
- attól függően, hogy a container milyen mount-okat kap, a host-on minden directory-t létre kell hoznunk előre
- a create oldalon a Cockpit-ben a Create gombra nyomjunk, ne akarjuk el is indítani, mert utóbbi esetben, ha valami nem kerek, nem lesz container, és bukjuk az eddig bevitt adatokat is
Első lépés az image beszerzése:
Majd a container paraméterezése:
Compose fájlként valahogy így néz ki ez nálam:
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- /etc/nginx-proxy-manager/data:/data
- /etc/nginx-proxy-manager/letsencrypt:/etc/letsencrypt
- /etc/nginx-proxy-manager/certbot-dns-plugins.json:/app/global/certbot-dns-plugins.json
Create után már indíthatjuk is, ha mindent jól csináltunk, akkor rendben el fog indul:
Itt érdemes ellenőrizni, hogy a választott domain a megfelelő címre mutat-e, attól függően, mit és hogyan szeretnénk, kellhet egy A record (domain.eu) és egy wildcard-os CNAME (*.domain.eu.) a proxy server címére.
Jöhet a beállítás, új user, password, de ugorjunk az érdekesebb részekhez, szerezzünk certificate-et https kapcsolathoz!
SSL certificates menüpontba navigáljunk először, és szerezzünk egy certificate-et a Let's Encrypt-től DNS-01 challenge-et alkalmazva (nem akarok portot nyitni, stb). Itt jön el az idő, amikor szükségünk lesz a generált API key-ünkre, hogy a certbot, amit a proxy manager container futtat létre tudja hozni a szükséges TXT record-okat, amikor ellenőrzi a domain nevet, hogy valóban hozzánk tartozik-e.
Amennyiben mindent jól megadtunk, kapnunk egy kell egy használhato certificate-et:
Innen már könnyű a dolgunk, csak a szükséges proxy-kat kell beállítanunk, például egy egyszerű proxy az Nginx proxy manager fölé így néz ki:
Ezek után a böngészőnkben már elérhető a saját kis domain neve alatt https-sel:
Bizonyos alkalmazásoknak esetleg még kellhet extra konfigurálás, hogy tudjanak proxy mögül operálni, ilyen maga a Cockpit is.
Ami még baj maradt nálam, hogy sújt egy másik bug is, custom location-t nem tudok használni. Később lehet, megtákolom ezt is, hogy menjen, de az sem elképzelhetetlen, hogy valami kevésbé fancy, de stabilabban működő megoldásra váltok.