Interaktív útmutató: SSL Dockerrel és DuckDNS-sel lokálisan

csináldmagad

SSL a Homelab-en Dockerrel és DuckDNS-szel

Ez az útmutató egy alternatív, Docker-alapú megoldást mutat be SSL tanúsítványok beállítására lokális hálózaton. A DuckDNS, a Docker Compose és a Nginx Proxy Manager hármasát használjuk. A cél: biztonságos HTTPS elérés a belső hálózati szolgáltatásokhoz anélkül, hogy azokat közvetlenül kitennénk az internetre.

🦆

DuckDNS

Ingyenes dinamikus DNS szolgáltató, ami biztosítja a domain nevet és a Let’s Encrypt hitelesítéshez szükséges tokent.

🐳

Docker Compose

Eszköz a több konténerből álló Docker alkalmazások egyszerű definiálására és futtatására egyetlen YAML fájl segítségével.

🛡️

Nginx Proxy Manager

Egy felhasználóbarát, grafikus felület a reverse proxy-k kezelésére, beépített, automatizált SSL tanúsítvány-igényléssel.

Előfeltételek

  • Működő Docker és Docker Compose telepítés a szerveren.
  • Egy ingyenes DuckDNS fiók és egy regisztrált aldomain.
  • Egy már futó belső szolgáltatás, amit el szeretnél érni (pl. Home Assistant, Plex), és aminek ismered a belső IP címét és portját.

A beállítás lépésről lépésre

Add meg saját DuckDNS adataidat!

A `docker-compose.yaml` fájl automatikusan frissülni fog az itt megadott értékekkel.

.duckdns.org
1

DuckDNS fiók beállítása

Ha még nincs, hozz létre egy fiókot a duckdns.org oldalon. Adj hozzá egy aldomaint, majd másold ki a hozzá tartozó tokent. Ezekre az adatokra lesz szükséged a következő lépésben.

2

Docker Compose fájl létrehozása

Hozz létre egy mappát a szerveren (pl. `npm`), majd ezen belül egy `docker-compose.yaml` nevű fájlt a lenti tartalommal. A fájl a megadott adatokkal dinamikusan frissül.

#version: ‘3.8’ services: npm: image: ‘jc21/nginx-proxy-manager:latest’ container_name: npm restart: unless-stopped ports: – ’80:80′ # Public HTTP Port – ‘443:443’ # Public HTTPS Port – ’81:81′ # Admin Web Port volumes: – ./data:/data – ./letsencrypt:/etc/letsencrypt duckdns: image: lscr.io/linuxserver/duckdns:latest container_name: duckdns restart: unless-stopped environment: – PUID=1000 – PGID=1000 – TZ=Europe/Budapest – SUBDOMAINS=sajat-domainem – TOKEN=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx – LOG_FILE=false
3

A konténerek indítása

Navigálj a terminálban a `docker-compose.yaml` fájlt tartalmazó mappába, majd indítsd el a szolgáltatásokat a háttérben.

docker-compose up -d
4

Nginx Proxy Manager konfigurálása

A konténerek elindulása után nyisd meg a Nginx Proxy Manager (NPM) adminisztrációs felületét a böngészőben: http://<szerver-ip>:81

A. Első bejelentkezés és jelszóváltoztatás

Jelentkezz be az alapértelmezett adatokkal, majd azonnal változtasd meg őket!

  • Email: `admin@example.com`
  • Jelszó: `changeme`

B. SSL tanúsítvány igénylése

  1. Navigálj az SSL Certificates menüpontra, majd kattints az Add SSL Certificate → Let’s Encrypt gombra.
  2. A Domain Names mezőbe írd be a wildcard domaint: `*.sajat-domainem.duckdns.org`
  3. Kapcsold be a Use a DNS Challenge opciót.
  4. A DNS Provider listából válaszd ki a DuckDNS-t.
  5. A `Credentials File Content` mezőbe illeszd be: `dns_duckdns_token = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
  6. Fogadd el a felhasználási feltételeket, majd kattints a Save gombra.

C. Proxy Host létrehozása

  1. Navigálj a Hosts → Proxy Hosts menüpontra, majd kattints az Add Proxy Host gombra.
  2. A Domain Name mezőbe írd be a szolgáltatás teljes címét (pl. `homeassistant.sajat-domainem.duckdns.org`).
  3. A Forward Hostname / IP mezőbe írd be a belső szolgáltatás IP címét (pl. `192.168.1.100`).
  4. A Forward Port mezőbe írd be a szolgáltatás portját (pl. `8123`).
  5. Kapcsold be a Block Common Exploits opciót.
  6. Válts az SSL fülre.
  7. Az SSL Certificate listából válaszd ki az előző lépésben létrehozott tanúsítványt.
  8. Kapcsold be a Force SSL opciót, majd kattints a Save gombra.

Kész is vagyunk!

Gratulálunk! A beállítások után a belső szolgáltatása mostantól elérhető a megadott domain néven, egy érvényes, biztonságos HTTPS kapcsolaton keresztül. A Nginx Proxy Manager automatikusan gondoskodni fog a tanúsítványok időben történő megújításáról.


Discover more from Okosotthon Blog

Subscribe to get the latest posts sent to your email.

„Miért nincs távirányító a hálószoba lámpakapcsolójához?” Ez a kérdés indított el engem az okosotthonok világába azzal a céllal, hogy otthonunkat ne csak kényelmesebbé, hanem biztonságosabbá és energiatakarékosabbá is tegyem. Évekig tartó kutatásba és kísérletezésbe fogtam; a "csináld magad" megoldásoktól a komplex épületautomatizálási rendszerekig mindent kipróbáltam, szétszedtem, és a saját bőrömön tapasztaltam meg a buktatókat. Zsák Péter vagyok. Feleségemmel, Zs. Szabó Kittivel közösen azon dolgozunk, hogy a zűrzavar helyett végre átláthatóságot hozzunk az okosotthonok világába. Közös célunk, hogy az okosotthonok ne bonyolítsák, hanem valóban könnyítsék az életünket. Ennek érdekében hoztuk létre az Okosotthon Guru brandet, hogy márkafüggetlenül támogassuk mind a szakembereket, mind a végfelhasználókat - képzésekkel, rendezvényekkel és a tudásmegosztó közösségünkkel.
Back To Top