Şimdi yükleniyor

cPanel/WHM: Wildcard SSL Otomasyonu (ACME DNS-01 Rehberi)

cPanel/WHM: Wildcard SSL Otomasyonu (ACME DNS-01 Rehberi)

Günümüz web dünyasında güvenlik, kullanıcıların web sitelerine olan güvenini sağlamanın temel taşıdır. Bu güveni sağlamanın en önemli yollarından biri de SSL/TLS sertifikaları kullanmaktır. Özellikle büyük veya çok sayıda alt alan adı kullanan web siteleri için Wildcard SSL sertifikaları, tek bir sertifika ile tüm alt alan adlarını güvence altına alarak hem maliyet hem de yönetim kolaylığı sunar. Ancak, cPanel/WHM ortamında Wildcard SSL sertifikalarını otomatik olarak edinmek, standart (HTTP-01) doğrulama yönteminin yetersiz kalması nedeniyle bazen zorlayıcı olabilir. İşte bu noktada ACME DNS-01 doğrulama yöntemi devreye girer ve bu makale, cPanel/WHM sunucularında bu yöntemi kullanarak Wildcard SSL sertifikalarını nasıl otomatik hale getirebileceğinizi adım adım açıklayacaktır.

Wildcard SSL ve DNS-01 Doğrulamanın Teknik Arka Planı

Geleneksel SSL sertifikaları belirli bir alan adı (örn. alanadi.com) veya bir alt alan adı (örn. www.alanadi.com) için geçerlidir. Wildcard SSL sertifikaları ise, ana alan adının tüm alt alan adlarını (örn. *.alanadi.com) kapsar. Bu, özellikle çok sayıda alt alan adı barındıran e-ticaret siteleri, kurumsal portallar veya geliştirme ortamları için son derece pratiktir.

Let’s Encrypt gibi ücretsiz sertifika sağlayıcıları, sertifika taleplerini doğrulamak için Otomatik Sertifika Yönetim Ortamı (ACME) protokolünü kullanır. Bu protokolün iki ana doğrulama yöntemi vardır:

  • HTTP-01: Sertifika talep eden sunucunun, belirli bir URL altında özel bir dosya oluşturarak alan adı sahipliğini kanıtlamasıdır. Bu yöntem, Wildcard sertifikaları için kullanılamaz çünkü bir alt alan adının sahipliği, *.alanadi.com şeklindeki genel bir ifadeyi doğrulamak için yeterli değildir.
  • DNS-01: Sertifika talep eden sunucunun, alan adının DNS kayıtlarına özel bir TXT kaydı ekleyerek sahipliğini kanıtlamasıdır. Bu yöntem, DNS kayıtlarını doğrudan etkilediği için Wildcard sertifikalarının doğrulanması için idealdir ve gereklidir. Let’s Encrypt, bu TXT kaydını belirli bir süre içinde doğrulayarak sertifikayı verir.

cPanel’in yerleşik AutoSSL özelliği, genellikle HTTP-01 yöntemini kullanarak sertifikaları otomatik olarak sağlar. Ancak, DNS-01 desteği, kullanılan DNS sağlayıcısına ve cPanel’in entegrasyonuna bağlı olarak sınırlı olabilir. Eğer DNS sağlayıcınız AutoSSL tarafından doğrudan desteklenmiyorsa veya daha fazla kontrol istiyorsanız, Certbot gibi bir ACME istemcisini kullanarak DNS-01 doğrulamasını manuel olarak yapılandırmak ve ardından sertifikayı cPanel/WHM’e entegre etmek en esnek çözümdür.

Adım Adım Uygulama Rehberi: Certbot ile Wildcard SSL

Bu rehberde, WHM/cPanel sunucunuzda Certbot’u kullanarak Wildcard SSL sertifikasını nasıl edineceğinizi ve yöneteceğinizi ele alacağız. Bu işlem, sunucuya SSH erişimi ve root yetkisi gerektirecektir.

1. Önkoşullar ve Hazırlık

  • WHM/cPanel Sunucusu: CentOS, AlmaLinux veya Rocky Linux tabanlı bir WHM/cPanel sunucusu.
  • SSH Erişimi: Root kullanıcısı olarak sunucuya SSH erişimi.
  • DNS Sağlayıcı API Erişimi: Alan adınızın DNS kayıtlarını yönettiğiniz sağlayıcının (örn. Cloudflare, Route 53, DigitalOcean DNS vb.) bir API anahtarına ihtiyacınız olacak. Bu anahtar, Certbot’un DNS kayıtlarını programatik olarak değiştirmesini sağlayacaktır.
  • EPEL Deposu: Certbot’u kurmak için EPEL (Extra Packages for Enterprise Linux) deposunun etkin olması gerekir.
yum install epel-release -y

2. Certbot ve DNS Eklentisini Kurma

Certbot’u ve seçtiğiniz DNS sağlayıcısına uygun eklentiyi kurun. Örnek olarak Cloudflare kullanacağız:

yum install certbot python3-certbot-dns-cloudflare -y

Diğer DNS sağlayıcıları için uygun eklentiyi kurmanız gerekir (örn. python3-certbot-dns-route53, python3-certbot-dns-digitalocean).

3. DNS API Kimlik Bilgilerini Yapılandırma

Certbot’un DNS sağlayıcınızla etkileşime geçebilmesi için API kimlik bilgilerini güvenli bir şekilde saklamanız gerekir. Cloudflare için ~/.secrets/cloudflare.ini adında bir dosya oluşturun:

mkdir -p ~/.secrets
vi ~/.secrets/cloudflare.ini

Dosyanın içine aşağıdaki bilgileri ekleyin (kendi API anahtarınız ve e-posta adresinizle değiştirin):

dns_cloudflare_email = [email protected]
dns_cloudflare_api_token = YOUR_CLOUDFLARE_API_TOKEN

Önemli: Bu dosyayı yalnızca root kullanıcısının okuyabileceği şekilde izinlerini ayarlayın:

chmod 600 ~/.secrets/cloudflare.ini

API anahtarınızın yalnızca DNS kayıtlarını düzenleme yetkisine sahip olduğundan emin olun. En az ayrıcalık ilkesini uygulayın.

4. Wildcard Sertifikası Talep Etme

Şimdi Certbot ile Wildcard sertifikasını talep edebilirsiniz. Alan adınızı ve alt alan adınızı belirtmeyi unutmayın:

certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/cloudflare.ini -d example.com -d *.example.com
  • certonly: Yalnızca sertifikayı al, otomatik olarak web sunucusuna kurma.
  • --dns-cloudflare: Cloudflare DNS eklentisini kullan.
  • --dns-cloudflare-credentials: Kimlik bilgilerinin bulunduğu dosyayı belirt.
  • -d example.com -d *.example.com: Hem ana alan adı hem de Wildcard alt alan adı için sertifika iste.

Bu komut başarılı olursa, sertifika dosyaları genellikle /etc/letsencrypt/live/example.com/ dizininde saklanacaktır:

  • fullchain.pem: Tam sertifika zinciri (sertifika + ara sertifikalar).
  • privkey.pem: Özel anahtar.

5. Sertifikayı cPanel/WHM’e Kurma

Elde ettiğiniz sertifikayı cPanel veya WHM üzerinden kurabilirsiniz.

WHM Üzerinden Kurulum (Önerilen)

WHM panelinize giriş yapın:

  1. Sol menüden “SSL/TLS” -> “Install an SSL Certificate on a Domain” seçeneğine gidin.
  2. “Domain” açılır menüsünden sertifikayı kurmak istediğiniz ana alan adını seçin (örn. example.com).
  3. “Certificate (CRT)” alanına /etc/letsencrypt/live/example.com/fullchain.pem dosyasının içeriğini yapıştırın.
  4. “Private Key (KEY)” alanına /etc/letsencrypt/live/example.com/privkey.pem dosyasının içeriğini yapıştırın.
  5. WHM, genellikle “Certificate Authority Bundle (CABUNDLE)” alanını otomatik olarak dolduracaktır. Doldurmazsa, /etc/letsencrypt/live/example.com/chain.pem içeriğini yapıştırın.
  6. “Install” butonuna tıklayın.

cPanel Üzerinden Kurulum

Alan adının cPanel’ine giriş yapın:

  1. “Güvenlik” bölümündeki “SSL/TLS” seçeneğine tıklayın.
  2. “SSL Sitelerini Yönet” bağlantısına tıklayın.
  3. “Alan Adı” açılır menüsünden ilgili alan adını seçin.
  4. “Sertifika (CRT)”, “Özel Anahtar (KEY)” ve “Sertifika Yetkilisi Paketi (CABUNDLE)” alanlarına yukarıda belirtilen dosya içeriklerini yapıştırın.
  5. “Sertifika Yükle” butonuna tıklayın.

6. Otomatik Yenileme

Let’s Encrypt sertifikaları 90 gün geçerlidir, bu yüzden otomatik yenileme kritik öneme sahiptir. Certbot’un yerleşik yenileme mekanizmasını kullanabiliriz:

certbot renew --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/cloudflare.ini --post-hook "/usr/local/cpanel/bin/rebuild_phpconf && /usr/local/cpanel/scripts/restartsrv_apache"

Bu komutu bir cron job olarak ayarlayarak sertifikaların otomatik olarak yenilenmesini sağlayabilirsiniz. Genellikle haftalık veya aylık çalıştırmak yeterlidir. cPanel/WHM’de sertifika yenilendikten sonra Apache’nin yeniden başlatılması gerekmektedir. --post-hook parametresi, yenileme başarılı olduğunda bu işlemi otomatik olarak yapacaktır.

Bir cron job oluşturmak için root olarak crontab -e komutunu kullanın ve aşağıdaki satırı ekleyin:

0 3 * * * /usr/bin/certbot renew --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/cloudflare.ini --post-hook "/usr/local/cpanel/bin/rebuild_phpconf && /usr/local/cpanel/scripts/restartsrv_apache" >> /var/log/certbot-renew.log 2>&1

Bu, her gün sabah 3’te yenileme işlemini deneyecektir. Certbot, süresi dolmak üzere olan sertifikaları yalnızca yeniler.

Olası Hata Çözümleri (Troubleshooting)

  • DNS Doğrulama Hatası:
    • API anahtarınızın doğru olduğundan ve DNS sağlayıcınızdaki ilgili yetkilere sahip olduğundan emin olun.
    • DNS kayıtlarının doğru bir şekilde yayılıp yayılmadığını kontrol etmek için dig TXT _acme-challenge.alanadi.com gibi araçları kullanın. DNS yayılımı zaman alabilir.
    • Certbot komutuna --dry-run ekleyerek gerçek bir sertifika istemeden önce test yapın.
  • Sertifika Yükleme Hatası:
    • Kopyaladığınız sertifika, özel anahtar ve CA Bundle içeriklerinin tam ve doğru olduğundan emin olun. Dosyaların başında ve sonunda gereksiz boşluklar olmadığından emin olun.
    • WHM/cPanel’in loglarını (örn. /usr/local/cpanel/logs/error_log) kontrol edin.
  • Yenileme Hatası:
    • Cron job’ın doğru çalıştığından ve gerekli ortam değişkenlerine sahip olduğundan emin olun. Log dosyasını (/var/log/certbot-renew.log) kontrol edin.
    • API kimlik bilgileri dosyasının izinlerinin (chmod 600) doğru olduğundan emin olun.

Güvenlik İpuçları

  • En Az Ayrıcalık İlkesi: DNS sağlayıcınızdaki API anahtarınıza yalnızca DNS TXT kayıtlarını ekleme/silme yetkisi verin. Diğer DNS kayıtlarını veya hesap ayarlarını değiştirmesine izin vermeyin.
  • API Anahtarını Koru: API kimlik bilgilerini içeren dosyayı (örn. .secrets/cloudflare.ini) kesinlikle herkese açık yapmayın ve izinlerini 600 olarak ayarlayarak yalnızca root kullanıcısının erişebilmesini sağlayın.
  • Güncel Yazılım: Certbot ve sunucu işletim sisteminizi düzenli olarak güncelleyin.
  • HTTP Strict Transport Security (HSTS): Tüm trafiği HTTPS’ye yönlendirmek için HSTS’yi etkinleştirmeyi düşünün. Bu, tarayıcıların sitenize her zaman güvenli bir bağlantı üzerinden erişmesini sağlar.

Performans Optimizasyonları

  • TLS 1.3 Kullanımı: Modern web sunucuları ve tarayıcılar tarafından desteklenen en yeni ve en hızlı TLS sürümü olan TLS 1.3’ü etkinleştirdiğinizden emin olun. WHM’de “Service Configuration” -> “Apache Configuration” -> “Global Configuration” altında bu ayarları bulabilirsiniz.
  • OCSP Stapling: Sertifika iptal durumunu doğrulamak için OCSP Stapling’i etkinleştirin. Bu, tarayıcıların sertifika sağlayıcısıyla doğrudan iletişim kurma ihtiyacını ortadan kaldırarak sayfa yükleme sürelerini hızlandırır. WHM’de Apache Global Configuration bölümünde etkinleştirilebilir.
  • HTTP/2: Web sitenizin HTTP/2 protokolünü kullanacak şekilde yapılandırıldığından emin olun. HTTPS ile birlikte kullanıldığında, HTTP/2 eşzamanlı istekleri ve sunucu itmesini destekleyerek performansı önemli ölçüde artırır.

cPanel/WHM ortamında Wildcard SSL sertifikalarını ACME DNS-01 yöntemiyle otomatikleştirmek, ilk başta karmaşık görünse de, doğru adımlarla uygulandığında oldukça güçlü bir çözümdür. Bu yöntem, özellikle DNS sağlayıcınızın AutoSSL tarafından doğal olarak desteklenmediği durumlarda veya sertifika yönetimi üzerinde daha fazla kontrol sahibi olmak istediğinizde size büyük esneklik sağlar. Güvenliği artırırken, yönetim yükünü azaltan bu otomasyon, modern web altyapılarının vazgeçilmez bir parçası haline gelmiştir. Bu rehberdeki adımları takip ederek, web sitelerinizin güvenliğini en üst düzeye çıkarabilir ve sorunsuz bir SSL deneyimi sunabilirsiniz.

You May Have Missed