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.

Back To Top