SSL Sorunlarının Kök Nedeni KRİTİK - 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
Sorunlu nginx Config (HTTP 80 Bloğu)
Düzeltilmiş nginx Config (HTTP 80 Bloğu)
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 ÇÖZÜM - v3
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
Script 1: fix-nginx-acme.sh
nginx HTTP 80 bloğuna .well-known bypass ekler. Plesk config'i yeniden oluşturduğunda çalıştırılmalı.
Ne zaman çalıştırılmalı: Plesk domain işlemlerinden sonra, SSL yenilemeden önce, veya SSL hatası alındığında.
Script 2: add-domain-to-ssl.sh EN ÖNEMLİ
Yeni bir domain'i mevcut SSL sertifikasına ekler. Tüm adımları otomatik yapar.
Önemli: Domain DNS'i sunucuya yönlenmeli (A kaydı: 159.253.45.94). DNS propagation beklenebilir.
Script 3: renew-ssl.sh
Tüm domain'ler için SSL sertifikasını yeniler veya test eder.
Yeni Tenant/Domain Ekleme Prosedürü (GÜNCEL)
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
SSL Script Çalıştır
Bu script tüm SSL işlemlerini otomatik yapar!
Test Et
https://yenisite.com aç, SSL hatası olmamalı
Basit Anlatım (Herkes İçin)
Tenant Nedir?
Tenant, sistemde bağımsız çalışan bir "kiracı site"dir. Her tenant'ın kendi veritabanı, dosyaları ve ayarları vardır. Örneğin: muzibu.com bir tenant, ixtif.com başka bir tenant'tır.
Ne Oluyor?
Yeni tenant oluşturulduğunda: veritabanı yaratılır, tablolar oluşturulur, dosya klasörleri hazırlanır, domain Plesk'e kaydedilir ve SSL sertifikası yenilenir.
Ne Kadar Sürer?
Tüm işlemler senkron (anında) çalışır. SSL sertifikası yenileme de dahil - wildcard DNS sayesinde *.tuufi.com subdomain'leri için bekleme gerekmez.
Neden Önemli?
Her site izole çalışır - birinin verileri diğerini etkilemez. Plesk entegrasyonu sayesinde domain yönetimi ve SSL otomatiktir.
Genel Akış Şeması
Hızlı Referans Komutları
SSL İşlemleri
Yeni domain SSL ekle:
sudo /var/www/vhosts/tuufi.com/httpdocs/scripts/ssl/add-domain-to-ssl.sh domain.com
nginx ACME bypass düzelt:
sudo /var/www/vhosts/tuufi.com/httpdocs/scripts/ssl/fix-nginx-acme.sh
Tüm SSL'leri yenile:
sudo /var/www/vhosts/tuufi.com/httpdocs/scripts/ssl/renew-ssl.sh
Kontrol Komutları
SSL domain kontrolü:
echo | openssl s_client -servername domain.com -connect domain.com:443 2>/dev/null | openssl x509 -noout -text | grep DNS:
HTTP ACME test:
curl -s http://domain.com/.well-known/acme-challenge/test
DNS kontrolü:
dig +short domain.com A
Sık Yapılan Hatalar
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: Cloudflare domain'i SSL'e eklemek
Cloudflare proxy aktifken HTTP doğrulama başarısız olur
Çözüm: Cloudflare domain'lerini SSL listesinden çıkar
Hata: plesk repair web sonrası SSL hatası
Plesk nginx config'i sıfırlar, bypass kuralı silinir
Çözüm: fix-nginx-acme.sh çalıştır
Özet: Yeni Domain Ekleme Checklist
1. Hazırlık
- Domain DNS ayarla (A: 159.253.45.94)
- DNS propagation bekle (5-30 dk)
-
dig domain.comile doğrula
2. Ekleme
- Admin'den tenant oluştur
- Domain ekle
- Sistem otomatik işlemleri bekle
3. SSL
-
add-domain-to-ssl.shçalıştır - https://domain.com test et
- Admin panele giriş test et
Sorun yaşarsan: tail -50 storage/logs/laravel-*.log kontrol et