🏗️ Kompletní instalace Nginx Proxy Manageru (NPM) s Cloudflare certifikátem
Tento návod popisuje instalaci reverzní proxy na Raspberry Pi 5 s využitím 15letého SSL certifikátu přímo od Cloudflare.
1. Příprava systému (Terminál)
Nejdříve vytvoříme strukturu složek v /opt/ a nastavíme správná oprávnění, aby kontejner mohl zapisovat data.
sudo mkdir -p /opt/nginx-proxy-manager/data
sudo mkdir -p /opt/nginx-proxy-manager/letsencrypt
sudo chown -R $USER:$USER /opt/nginx-proxy-manager
sudo chmod -R 775 /opt/nginx-proxy-manager
🔑 2. Získání 15letého certifikátu (Cloudflare Dashboard)Origin Certifikát
MístoTento neustáléhocertifikát obnovováníslouží Let'svýhradně Encryptpro použijemešifrování Origintrasy Certifikát:mezi Cloudflare a tvým RPi5.
-
V Cloudflare: SSL/TLS -> Origin Server -> Create Certificate.
-
NastaveníNastavení:ponechat (RSA 2048, platnost 15years).let. -
DŮLEŽITÉ:Zkopíruj si textOrigin CertificateaPrivate Key.Budeš je vkládat do NPM.
[!CAUTION] BEZPEČNOSTNÍ VAROVÁNÍ: Cloudflare Origin certifikát není veřejně důvěryhodný pro prohlížeče. Pokud se na server pokusíš připojit přímo (mimo Cloudflare), prohlížeč nahlásí chybu zabezpečení.
📦 3. Konfigurace Portainer Stack (YAML)
Vytvoř nový stack v Portaineru.stack. Používáme SQLite (vhodné pro jednoduchosthomelab, ašetří stabilitu.RAM, nepoužívat pro HA/produkční nasazení s vysokou zátěží).
version: "3.9"
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80'
# Povinné pro HTTP
- '443:443' # Povinné pro HTTPS
- '81:81' # WebováAdministrace administraceNPM
environment:
- TZ=${TZ} # Definováno v Portainer UI
volumes:
- /opt/nginx-proxy-manager/data:/data
- /opt/nginx-proxy-manager/letsencrypt:/etc/letsencrypt
4. Nastavení Environment Variables (Portainer UI)
Pod YAML kódem přidej proměnnou:
🔒 4. Zabezpečení přímého přístupu
Aby nedošlo k obejití Cloudflare (WAF, rate-limiting), je kriticky důležité zajistit, aby server nebyl přístupný napřímo z internetu.
-
Doporučené řešení: Použij Cloudflare Tunnel (z předchozího návodu), který porty 80/443 do internetu vůbec neotevírá.
-
Alternativa: Pokud nepoužíváš tunel, nastav na routeru/firewallu (UFW) povolení pouze pro IP rozsahy Cloudflare.
⚙️ 5. Konfigurace NPM a SSL v rozhraní NPM
🛡️ 6. Nastavení vCloudflare SSL Režimu
6. Nastavení vCloudflare SSL Režimu
V Cloudflare (Zabezpečení)
Aby vše fungovalo, musíš v Cloudflaredashboardu v sekci SSL/TLS -> Overview přepnoutpřepni režim na Full (strict). Tím zajistíš, že Cloudflare bude komunikovat s tvým RPi5 pouze skrze tento bezpečný certifikát.