bg-tutorials

Plesk’e ACME SSL Sertifikası Nasıl Kurulur

Bir Plesk üzerinde web siteleri yönetiyorsanız, artık sertifikaları manuel olarak işlemeniz için bir neden yok. Doğru kurulumla, Harici Hesap Bağlama (EAB) ile ACME protokolünü kullanarak SSL sertifikalarının verilmesini, yenilenmesini ve yüklenmesini otomatikleştirebilirsiniz.

Plesk ACME SSL

Bu kılavuz, Plesk ile sorunsuz çalışan hafif bir ACME istemcisi olan ACME .sh‘yi kullanarak Plesk’e (Linux tabanlı) bir ACME SSL Sertifikasının tam olarak nasıl kurulacağını gösterir.

Eğer paylaşımlı hosting kullanıyorsanız, bu yöntemi kullanamayabilirsiniz. Çoğu paylaşımlı ortam kök erişimine veya özel komut dosyalarına izin vermez. Bu kılavuz, barındırma yığınını kontrol ettiğiniz VPS ve tahsis edilmiş sunucular için geçerlidir.


Başlamadan Önce

Adımlara geçmeden önce aşağıdakileri hazırladığınızdan emin olun:

  • Plesk Obsidian ile bir sunucu veya VPS
  • Sunucuya SSH erişimi. root veya sudo ayrıcalıklarına sahip bir kullanıcı
  • Bir A veya AAAA kaydı aracılığıyla sunucuya işaret eden canlı bir etki alanı
  • Port 80 açık ve herkese açık olarak erişilebilir (HTTP-01 doğrulaması için gereklidir)
  • SSL sağlayıcısından aldığınız EAB kimlik bilgileriniz (EAB KID ve EAB HMAC Anahtarı)

Kullanılacak ACME uç noktaları:

  • Sectigo: https://acme.sectigo.com/v2/DV
  • DigiCert: https://acme.digicert.com/v2/acme

Adım 1: Plesk’te Web Sitenizin Belge Kökünü Kontrol Edin

ACME.sh ‘nin doğrulama dosyalarını doğru şekilde yerleştirebilmesi için sitenizin kök klasörünün yoluna ihtiyacınız olacaktır.

  1. Plesk’te oturum açın
  2. Web Siteleri ve Alan Adları > yourdomain.com > Barındırma Ayarları‘na gidin
  3. Belge kök değerini kopyalayın. Şuna benziyor: /var/www/vhosts/yourdomain.com/httpdocs
  4. Bu yolu el altında tutun, sonraki adımlarda kullanacaksınız.

Adım 2: SSH Erişimini Etkinleştirin (Gerekiyorsa)

Barındırma planınızda SSH etkin değilse:

  1. Web Siteleri ve Alan Adlarına Git > yourdomain.com > Web Hosting Erişimi
  2. SSH üzerinden sunucuya erişim altında /bin/bash veya /usr/bin/bash seçeneğini belirleyin
  3. Ayarları kaydedin

Yönetilen/paylaşılan bir ana bilgisayardaysanız, SSH erişimi talep etmek için destek ekibiyle iletişime geçin.


Adım 3: SSH ile Sunucunuza Bağlanın

Yerel terminalinizden sunucuya bağlanın:

ssh [email protected]

Ya da root olmayan bir kullanıcı kullanıyorsanız:

ssh [email protected]

Adım 4: ACME.sh dosyasını yükleyin

Resmi yükleyiciyi çalıştırın:

curl https://get.acme.sh | sh
source ~/.bashrc

Ardından yüklü olduğunu onaylamak için sürümü kontrol edin:

acme.sh --version

Başarısız olursa, curl ve git adreslerinin yüklü olduğundan emin olun. Gerekirse yüklemeyi --force ile yeniden çalıştırabilirsiniz.


Adım 5: Hesabınızı EAB’ye Kaydedin

ACME kaydı, sunucunuzu sertifika yetkilisine bağlayan tek seferlik bir kurulumdur, böylece gelecekteki sertifika istekleri otomatik olarak doğrulanabilir ve işlenebilir.

Bu komut, benzersiz EAB kimlik bilgilerinizi kullanarak ACME hesabınızı SSL sağlayıcınıza(Sectigo veya DigiCert) kaydeder.

acme.sh --register-account \
  --server https://acme.sectigo.com/v2/DV \
  --eab-kid YOUR_EAB_KID \
  --eab-hmac-key YOUR_EAB_HMAC_KEY \
  --accountemail [email protected]

İşte her bir parçanın ne anlama geldiği:

  • acme.sh --register-account – ACME hesap kaydını başlatır
  • --server – Sağlayıcınızın ACME URL’si (Sectigo veya DigiCert)
  • --eab-kid – Sağlayıcıdan aldığınız EAB Anahtar Kimliğiniz
  • --eab-hmac-key – EAB HMAC gizli anahtarınız (uzun dize)
  • --accountemail – ACME hesabı için iletişim e-postanız

Bu komut gerçek EAB bilgileriniz ve e-posta adresinizle özelleştirilmelidir. Olduğu gibi kopyalamayın.

Eğer YOUR_EAB_KID gibi yer tutucuları bırakırsanız, komut bir kimlik doğrulama hatası ile başarısız olacaktır.

Başarılı bir şekilde çalıştığında, sunucunuz artık bu sağlayıcıdan SSL sertifikaları talep etme yetkisine sahip olur; sağlayıcıları veya kimlik bilgilerini değiştirmediğiniz sürece gelecekte tekrar kaydolmanıza gerek yoktur.


Adım 6: HTTP Doğrulaması için Hazırlanın

ACME meydan okuma dizinini oluşturun:

mkdir -p /var/www/vhosts/yourdomain.com/httpdocs/.well-known/acme-challenge

Ardından çalışıp çalışmadığını test edin:

echo "ok" > /var/www/vhosts/yourdomain.com/httpdocs/.well-known/acme-challenge/testfile
curl -I http://yourdomain.com/.well-known/acme-challenge/testfile

Görmelisiniz HTTP/1.1 200 OK. Değilse, güvenlik duvarı kurallarını, 80 numaralı bağlantı noktası erişimini veya belge kök yolunu kontrol edin.


Adım 7: ACME Yolu için Zorlanmış HTTPS’yi Atlayın

Siteniz tüm trafiği HTTPS’ye yönlendiriyorsa, meydan okuma klasörünün bunu atlamasına izin vermediğiniz sürece HTTP-01 doğrulamasını bozacaktır.

Apache Kullanıyorsanız (Plesk Linux’ta Varsayılan)

Belge kök dizinindeki .htaccess dosyanızı düzenleyin ve bunu en üste ekleyin:

RewriteEngine On
RewriteRule ^.well-known/acme-challenge/ - [L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Nginx Kullanıyorsanız (veya Nginx Apache’nin Önündeyse)

Apache .htaccess burada yardımcı olmaz çünkü yönlendirmeyi ilk olarak Nginx yapar. Bunun yerine, Plesk’te özel bir Nginx yönergesi eklemeniz gerekir:

  1. Web Siteleri ve Alan Adları > yourdomain.com > Apache ve Nginx Ayarları‘na gidin
  2. Ek Nginx yönergeleri etiketli alanı bulun
  3. Bunu yapıştır:
location ^~ /.well-known/acme-challenge/ {
root /var/www/vhosts/yourdomain.com/httpdocs;
allow all;
try_files $uri =404;
}

Bu, Nginx’e meydan okuma yolunu doğrudan sunmasını, HTTPS yönlendirmesi veya Apache’ye proxy sunmamasını söyler. Değişiklikleri kaydedin ve uygulayın.


Adım 8: Sertifikayı Düzenleyin

Şimdi sertifika talebinde bulunabilirsiniz. İşte Sectigo ve iki alan adı varyasyonu içeren bir örnek:

acme.sh --issue \
  -d yourdomain.com \
  -d www.yourdomain.com \
  -w /var/www/vhosts/yourdomain.com/httpdocs \
  --server https://acme.sectigo.com/v2/DV

Gerektiği kadar -d bayrağı ekleyebilirsiniz. Sertifika verildikten sonra, ACME.sh her şeyi bu klasöre kaydeder: /root/.acme.sh/yourdomain.com/

Plesk için ihtiyacınız olan iki dosya şunlardır:

  • yourdomain.com.key: bu sizin özel anahtarınızdır
  • fullchain.cer: bu sizin sertifika dosyanızdır ve tam zinciri içerir (sertifikanız + CA zinciri)

Bunlar, sertifikayı Plesk’e yüklemek için yükleyeceğiniz veya CLI’da kullanacağınız dosyalardır.


Adım 9: UI aracılığıyla Sertifikayı Plesk’e Aktarın

  1. Web Siteleri ve Alan Adları ‘na gidin > yourdomain.com > SSL/TLS Sertifikaları
  2. SSL/TLS Sertifikası Ekle’ye tıklayın
  3. Sertifikayı ( fullchain.cer‘yi seçin) ve özel anahtarı ( yourdomain.com.key’i seçin) yükleyin. Kaydet’e tıklayın
  4. Hosting Ayarlarına geri dönün ve SSL/TLS desteği bölümünden bu sertifikayı seçin
  5. Tamam veya Uygula‘ya tıklayın

Alan adınız artık üçüncü taraf ACME SSL sertifikasını kullanıyor.


Adım 10: Plesk CLI ile İçe Aktarmayı Otomatikleştirin (İsteğe Bağlı, Cron için İdeal)

Gelecekteki yenilemelerde sertifika uygulamasını otomatikleştirmek için CLI’yi kullanın:

plesk bin certificate -c "acme-yourdomain" \
  -domain yourdomain.com \
  -cert-file /root/.acme.sh/yourdomain.com/fullchain.cer \
  -key-file  /root/.acme.sh/yourdomain.com/yourdomain.com.key

plesk bin domain -u yourdomain.com -ssl true -certificate-name "acme-yourdomain"
plesk bin httpdmng --reconfigure-domain yourdomain.com

Eğer plesk komutu tanınmazsa, tam yolu deneyin: /usr/sbin/plesk bin …


Adım 11: Deploy Script ile Yenilemeleri Otomatikleştirin

ACME.sh sertifikaları süreleri dolmadan ~30 gün önce otomatik olarak yeniler. Ancak bunları Plesk’e otomatik olarak uygulamak için yenileme sonrası bir kanca bağlayacağız.

1. Dağıtım komut dosyasını oluşturun

nano /usr/local/bin/plesk-acme-deploy.sh

Aşağıdakileri yapıştırın:

#!/usr/bin/env bash
set -euo pipefail

DOMAIN="yourdomain.com"
CERT_DIR="/root/.acme.sh/${DOMAIN}"
CERT_NAME="acme-${DOMAIN}"

CERT_FILE="${CERT_DIR}/fullchain.cer"
KEY_FILE="${CERT_DIR}/${DOMAIN}.key"

/usr/sbin/plesk bin certificate -c "${CERT_NAME}" \
  -domain "${DOMAIN}" \
  -cert-file "${CERT_FILE}" \
  -key-file  "${KEY_FILE}"

/usr/sbin/plesk bin domain -u "${DOMAIN}" -ssl true -certificate-name "${CERT_NAME}"
/usr/sbin/plesk bin httpdmng --reconfigure-domain "${DOMAIN}"

echo "Plesk deploy complete for ${DOMAIN}"

2. Kaydedin ve çalıştırılabilir hale getirin

chmod +x /usr/local/bin/plesk-acme-deploy.sh

3. ACME.sh dosyasına bağlayın

acme.sh --install-cert -d yourdomain.com \
  --key-file       ~/.acme.sh/yourdomain.com/yourdomain.com.key \
  --fullchain-file ~/.acme.sh/yourdomain.com/fullchain.cer \
  --reloadcmd "/usr/local/bin/plesk-acme-deploy.sh"

Şu andan itibaren, her yenileme Plesk için geçerli olacaktır.


Adım 12: Her Şeyi Test Edin

Sitenizi https://yourdomain.com adresinde ziyaret edin. Sertifika geçerli olmalı ve CA’nızı göstermelidir.

Yenilemeyi test etmek ve manuel olarak dağıtmak için çalıştırın:

acme.sh --renew -d yourdomain.com --force

Sonra günlüğü takip edin:

tail -n 60 ~/.acme.sh/acme.sh.log

Sonunda başarılı bir yenileme ve “Plesk dağıtımı tamamlandı” ifadesini görmelisiniz.


Yaygın Sorunlar ve Sorun Giderme

Doğru kurulumla bile, özellikle alan adı doğrulama, yönlendirmeler veya dosya yollarında işler her zaman ilk denemede sorunsuz gitmez. Aşağıda, sertifikanızı verirken veya yenilerken karşılaşabileceğiniz en yaygın sorunlar ve bunları hızlı bir şekilde nasıl düzeltebileceğiniz yer almaktadır.

HTTP doğrulaması başarısız (404, zaman aşımı veya test dosyası bulunamadı)

Bu, ACME meydan okuma dosyasının düzgün şekilde sunulmadığı anlamına gelir.

  • Plesk > Hosting Ayarları‘nda belge kökünü iki kez kontrol edin.
  • 80 numaralı bağlantı noktasının açık olduğundan ve güvenlik duvarınız, barındırma paneliniz veya bulut sağlayıcınız tarafından engellenmediğinden emin olun.
  • HTTPS’ye yönlendirmeniz varsa, daha önce gösterildiği gibi /.well-known/acme-challenge/ öğesinin hariç tutulduğundan emin olun.

Düzenleme sırasında “Yetkisiz” veya “geçersiz yanıt”

ACME sunucusu, muhtemelen aşağıdakilerden biri nedeniyle meydan okumanızı doğrulayamadı:

  • Alan adınızın DNS kayıtları henüz güncellenmedi (A veya AAAA kaydı eksik veya hala yayılıyor).
  • Test dosyasına ulaşılamadı, çok erken kaldırıldı veya bir kural tarafından engellendi.
  • HTTP trafiğini engelleyen bir CDN veya WAF (Cloudflare gibi) kullanıyorsunuz. Proxy’lemeyi geçici olarak duraklatın veya ACME yolunu beyaz listeye alın.

Yenilemeden sonra hiçbir şey olmuyor

Sertifika yenileniyor, ancak Plesk’te uygulanmıyor.

Dağıtım komut dosyası yolunuzun –reloadcmd içinde doğru olduğundan emin olun.

Komut dosyasının çalıştırılabilir olup olmadığını kontrol edin:

chmod +x /usr/local/bin/plesk-acme-deploy.sh

ACME günlüğünün içine bakın:

tail -n 60 ~/.acme.sh/acme.sh.log

Hatalar orada görünecektir.

Plesk CLI içe aktarma başarısız

Dağıtım betiğiniz çalışabilir, ancak sertifika geçerli olmaz.

  • Eğer plesk komutu bulunamazsa, tam yolu kullanmayı deneyin: /usr/sbin/plesk
  • .key ve .cer dosyalarının gerçekten var olduğunu ve doğru adlara sahip olduğunu iki kez kontrol edin.
  • Yeniden yapılandırmayı manuel olarak zorlamak için çalıştırın:
plesk bin httpdmng --reconfigure-domain yourdomain.com

Final Wrods

Artık Plesk sunucunuzda çalışan temiz, tam otomatik bir SSL kurulumunuz var. Bu noktadan sonra sertifikanız arka planda otomatik olarak yenilenecek ve yeni bir sertifika yayınladığınızda komut dosyası Plesk’i hemen güncelleyecektir. Sertifika yaşam döngünüzün tam kontrolünü elinize aldınız ve hayatınızı çok daha kolay hale getirdiniz.

Bugün SSL Dragon’dan sipariş vererek SSL Sertifikalarında %10 indirimden yararlanın!

Hızlı düzenleme, güçlü şifreleme, %99,99 tarayıcı güvenilirliği, özel destek ve 25 günlük para iade garantisi. Kupon kodu: SAVE10

A detailed image of a dragon in flight
Tarafından yazıldı

SSL Sertifikaları konusunda uzmanlaşmış deneyimli içerik yazarı. Karmaşık siber güvenlik konularını açık, ilgi çekici içeriğe dönüştürmek. Etkili anlatımlar yoluyla dijital güvenliğin geliştirilmesine katkıda bulunun.