nginx Config'e Domain Ekleme (EKSİK ADIM!) KRİTİK - v4
Basit Anlatım (Herkes İçin)
Problem Ne?
Tenant oluşturulduğunda domain nginx config dosyasına eklenmiyor. Bu yüzden SSL script'i çalıştırılsa bile başarısız oluyor.
Ne Oluyor?
nginx yeni domain'i tanımıyor → istek varsayılan sertifikaya gidiyor → SSL uyumsuzluğu → "Bağlantınız gizli değil" hatası
Gerçek Örnek: banff.tuufi.com
Tenant oluşturuldu, DB hazır, DNS doğru ama SSL hatası. Sebep: nginx config'de server_name banff.tuufi.com; satırı yoktu!
Çözüm
SSL script'inden ÖNCE domain'i nginx config'e eklemek gerekiyor. Ya Plesk alias ya da manuel ekleme.
Teknik Detaylar
Sorunlu Durum
Doğru Akış
Manuel nginx Config Ekleme
Dikkat: Bu dosya Plesk tarafından otomatik üretiliyor. plesk repair web sonrası değişiklikler kaybolabilir!
TODO: Otomatik Script Geliştirme
Bu adımı otomatikleştirmek için add-domain-to-ssl.sh script'i güncellenmeli:
nginx config kontrolü ekle
Domain nginx config'de var mı kontrol et
Otomatik ekleme yap
Yoksa sed ile hem HTTP hem HTTPS bloğuna ekle
nginx reload yap
Config değişikliğinden sonra nginx'i yeniden yükle
Alternatif: Wildcard SSL
*.tuufi.com için wildcard sertifika al (ixtif gibi)
SSL Sorunlarının Kök Nedeni v3
Basit Anlatım (Herkes İçin)
Problem Ne?
Yeni bir domain/tenant eklendiğinde tarayıcıda "Bağlantınız gizli değil" hatası alınıyor. Bu SSL sertifika hatasıdır.
Neden Oluyor?
Let's Encrypt sertifika doğrulaması HTTP üzerinden yapılıyor ama sunucu HTTPS'e yönlendiriyor. HTTPS'te yeni domain sertifikada olmadığı için doğrulama başarısız oluyor.
Döngüsel Problem
SSL almak için doğrulama lazım → Doğrulama HTTPS'e gidiyor → HTTPS'te sertifika yok → Doğrulama başarısız → SSL alınamıyor → Döngü!
Çözüm Özet
HTTP 80 portunda .well-known/acme-challenge klasörü için HTTPS yönlendirmesini devre dışı bırakıyoruz. Böylece doğrulama HTTP üzerinden çalışıyor.
Teknik Detaylar (Geliştiriciler İçin)
Sorunlu Akış
http://domain.com/.well-known/acme-challenge/xxx istek
https://domain.com/.well-known/... yönlenir
Düzeltilmiş Akış
http://domain.com/.well-known/acme-challenge/xxx istek
Kritik Dosya Konumu
nginx vhost config:
/etc/nginx/plesk.conf.d/vhosts/tuufi.com.conf
ACME webroot:
/var/www/vhosts/tuufi.com/httpdocs/public/.well-known/acme-challenge/
plesk repair web veya domain işlemleri sonrası bypass kuralı silinebilir!
Kalıcı Çözüm: SSL Yönetim Script'leri
Script Konumları
/var/www/vhosts/tuufi.com/httpdocs/scripts/ssl/ ├── fix-nginx-acme.sh # nginx ACME bypass düzeltme ├── renew-ssl.sh # Tüm domain'ler için SSL yenileme └── add-domain-to-ssl.sh # Yeni domain SSL ekleme
Yeni Tenant/Domain Ekleme Prosedürü (GÜNCEL v4)
Admin Panelden Tenant Oluştur
tuufi.com/admin/tenants → Yeni Tenant ekle
Otomatik: DB, tablolar, seeder, storage, Plesk DB kaydı
Domain Ekle
Tenant detayında domain ekle (örn: yenisite.com)
Otomatik: www subdomain, Plesk alias, nginx/apache config
DNS Ayarla (Harici domain ise)
Domain sağlayıcısında A kaydı: 159.253.45.94
*.tuufi.com subdomain'leri için DNS zaten hazır
nginx Config'e Domain Ekle (YENİ!)
Domain nginx config'de yoksa manuel ekle:
Bu adım atlanırsa SSL script başarısız olur!
SSL Script Çalıştır
Bu script SSL sertifikası alır ve Plesk'e kaydeder
Test Et
https://yenisite.com aç, SSL hatası olmamalı
Genel Akış Şeması (Güncel v4)
Hızlı Referans Komutları
nginx İşlemleri
Domain nginx'te var mı?
sudo grep "domain.com" /etc/nginx/plesk.conf.d/vhosts/tuufi.com.conf
nginx test & reload:
sudo nginx -t && sudo systemctl reload nginx
SSL İşlemleri
Yeni domain SSL ekle:
sudo scripts/ssl/add-domain-to-ssl.sh domain.com
nginx ACME bypass düzelt:
sudo scripts/ssl/fix-nginx-acme.sh
Kontrol Komutları
SSL sertifika kontrolü:
echo | openssl s_client -servername domain.com -connect domain.com:443 2>/dev/null | openssl x509 -noout -text | grep DNS:
DNS kontrolü:
dig +short domain.com A
Sık Yapılan Hatalar
Hata: nginx config'e domain eklememek (YENİ!)
Tenant oluşturuldu ama nginx config'de domain yok. SSL script 404 hatası verir.
Çözüm: SSL'den önce nginx config'e domain ekle ve reload yap
Hata: DNS beklemeden SSL almak
Domain DNS'i sunucuya yönlenmeden SSL almaya çalışmak
Çözüm: Önce dig domain.com ile DNS'i kontrol et
Hata: Plesk'ten manuel SSL almak
Plesk panelden Let's Encrypt tıklamak (nginx bypass olmadan başarısız olur)
Çözüm: Her zaman script'leri kullan
Hata: plesk repair web sonrası SSL hatası
Plesk nginx config'i sıfırlar, bypass kuralı ve domain'ler silinebilir
Çözüm: fix-nginx-acme.sh çalıştır + domain'leri kontrol et
Özet: Yeni Domain Ekleme Checklist (v4)
1. Hazırlık
- DNS ayarla (A: 159.253.45.94)
- DNS propagation bekle
-
dig domain.com
2. Tenant
- Admin'den tenant oluştur
- Domain ekle
- Otomatik işlem bekle
3. nginx (YENİ!)
- nginx'te domain var mı?
- Yoksa sed ile ekle
- nginx -t && reload
4. SSL
- add-domain-to-ssl.sh
- https://domain.com test
- Admin giriş test
Sorun yaşarsan: tail -50 storage/logs/laravel-*.log kontrol et