Nginx Proxy Manager ve Dinamik DNS ile Ev Servislerine Güvenli SSL Alan Adı Bağlama

Ev sunucunuzda Pi-hole, Filebrowser, Syncthing veya Home Assistant gibi servisler kurduğunuzda bu servislere erişmek için tarayıcınıza 192.168.1.150:8080, 192.168.1.150:8082 gibi IP ve port numaraları yazmak zorunda kalırsınız. Üstelik bağlantı şifresiz (HTTP) olduğu için tarayıcınız sürekli “Güvenli Değil” uyarısı verir.

Bu sorunu çözmenin en temiz yolu, tüm bu servislerin önüne ters vekil (Reverse Proxy) olarak çalışan Nginx Proxy Manager koymak ve ücretsiz Let’s Encrypt SSL sertifikalarıyla bulut.ahakan.com, dns.ahakan.com gibi kurumsal alt alan adları (subdomain) tanımlamaktır.

Bu rehberde; Dinamik DNS (DDNS) entegrasyonunu, Nginx Proxy Manager (NPM) kurulumunu ve tek tıkla SSL sertifikası üretimini inceliyoruz.


1. Mimari Şema: Tek Porttan Tüm Servislere Yönlendirme

               İnternet / Ev Ağı
                      │
           (Port 80 / 443 - HTTPS)
                      ▼
         [Nginx Proxy Manager (NPM)]
          ├── bulut.evim.com ──> Filebrowser (:8082)
          ├── dns.evim.com   ──> Pi-hole (:8080)
          └── ai.evim.com    ──> Open WebUI (:3000)

Dışarıya veya yerel ağa onlarca farklı port açmak yerine yalnızca 80 (HTTP) ve 443 (HTTPS) portları Nginx Proxy Manager’a yönlendirilir; yönlendirmeyi alan adına göre NPM üstlenir.


2. Dinamik DNS (DDNS): Değişen Ev IP’sini Sabitlemek

Ev internet bağlantılarının çoğunda sabit IP yoktur; modem her yeniden başladığında dış IP adresiniz değişir.

Kendi alan adınızı (örneğin Cloudflare arkasındaki bir domaini) evinizin IP’sine her zaman bağlı tutmak için hafif bir Docker servisi çalıştırabilirsiniz:

# Cloudflare DDNS Örneği
services:
  cloudflare-ddns:
    image: favonia/cloudflare-ddns:latest
    container_name: cloudflare-ddns
    restart: always
    environment:
      - CLOUDFLARE_API_TOKEN=SizinCloudflareAPITokeniniz
      - DOMAINS=evim.ahakan.com,*.evim.ahakan.com
      - PROXIED=true

3. Docker Compose ile Nginx Proxy Manager Kurulumu

docker-compose.yml:

version: '3.8'

services:
  npm:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: nginx-proxy-manager
    restart: always
    ports:
      - '80:80'     # HTTP trafiği (HTTPS yönlendirmesi için)
      - '443:443'   # Güvenli HTTPS trafiği
      - '81:81'     # Yönetim Web Paneli
    environment:
      - DISABLE_IPV6=true
    volumes:
      - ./npm_data:/data
      - ./npm_letsencrypt:/etc/letsencrypt

Konteyneri başlatın:

docker compose up -d

4. İlk Giriş ve Ters Vekil (Proxy Host) Tanımlama

  1. Tarayıcınızdan http://192.168.1.150:81 adresine gidin.

Varsayılan Giriş:* admin@example.com / changeme (İlk girişte e-posta ve şifrenizi güncelleyin).

  1. Hosts ➔ Proxy Hosts ➔ Add Proxy Host butonuna tıklayın.

Örnek Yapılandırma: Filebrowser Servisi

  • Domain Names: bulut.evim.ahakan.com
  • Scheme: http
  • Forward Hostname / IP: 192.168.1.150 (veya Docker konteyner adı)
  • Forward Port: 8082
  • Block Common Exploits: Açık (Güvenlik filtreleri)
  • Websockets Support: Açık

5. Let’s Encrypt ile Tek Tıkla SSL Sertifikası

Aynı pencerede SSL sekmesine geçin:

  1. SSL Certificate: Request a new SSL Certificate seçin.
  2. Force SSL: Açık (HTTP isteklerini otomatik HTTPS’e yönlendirir).
  3. HTTP/2 Support: Açık.
  4. HSTS Enabled: Açık.
  5. Kullanım şartlarını onaylayıp Save butonuna tıklayın.

Nginx Proxy Manager arka planda Let’s Encrypt sunucularıyla el sıkışarak geçerli ve güvenilir bir SSL sertifikası üretir. Sertifikanın süresi dolmaya yakın (90 günde bir) otomatik olarak kendini yeniler.


6. Yerel Gizlilik İpucu: Local DNS Rewrite

Eğer servislerinizi dış internete hiç açmak istemiyorsanız; Pi-hole yönetim panelinden Local DNS ➔ DNS Records sekmesine girin:

  • bulut.evim.ahakan.com adresini doğrudan ev sunucunuzun yerel IP’sine (192.168.1.150) yönlendirin.

Bu sayede:

  • Evde Wi-Fi’a bağlıyken veya dışarıda WireGuard açıkken tarayıcınıza https://bulut.evim.ahakan.com yazdığınızda paketler internete hiç çıkmadan doğrudan yerel ağda çözülür ve tarayıcınızda yeşil kilit (SSL) simgesiyle güvenle açılır.

7. Serinin Genel Özeti

Bu 5 bölümlük Kişisel Veri Egemenliği serisinde:

  1. Donanım seçimimizi yaptık.
  2. Pi-hole ve Unbound ile tüm ev ağında izleyicileri engelledik.
  3. WireGuard ile dışarıdan evimize güvenli şifreli tünel kurduk.
  4. Syncthing ve Filebrowser ile kendi bağımsız bulut depolamamızı kurduk.
  5. Nginx Proxy Manager ve SSL ile servislerimizi profesyonel alan adlarıyla taçlandırdık.

Artık verileriniz de altyapınız da tamamen sizin kontrolünüz altında.