CPanel içeren bazı paylaşımlı hosting paketleri AutoSSL özelliği sunmaz veya yalnızca daha yüksek fiyatlı planlarda sunar. Sonuç olarak, cPanel arayüzü üzerinden ücretsiz Let's Encrypt sertifikası düzenleyemezsiniz ve tüm alan adları kendi kendine imzalanmış bir sertifikayla kalır. Tarayıcı sayfayı "güvenli değil" olarak görüntüler. Çözüm: acme.sh kullanarak sertifikayı kendiniz edinin ve cPanel UAPI üzerinden kurun. AutoSSL'ye ihtiyaç duymadan otomatik olarak yenilenecektir.
HTTPS artık zorunlu: yeşil kilit simgesi standart hale geldi ve tarayıcılar bunun dışındaki her şeyi açık uyarılarla cezalandırıyor. Bu nedenle, kendi hosting paketiniz ücretsiz sertifika edinmenin uygun bir yolunu sunmuyorsa, durum daha da sinir bozucu oluyor. Ancak, bu açık, shell'de birkaç satır kodla zarif ve kalıcı bir şekilde kapatılabilir – tüm süreç aşağıda açıklanmıştır.
1. SSH üzerinden giriş yapın.
ssh -p <port> <cpanel-user>@<host>
2. acme.sh dosyasını yükleyin.
curl https://get.acme.sh | sh -s email=du@example.com
source ~/.bashrc
3. Let's Encrypt'i Sertifika Yetkilisi (CA) olarak ayarlayın.
acme.sh --set-default-ca --server letsencrypt
4. Sertifika düzenleme
acme.sh --issue -d example.com -d www.example.com -w ~/public_html
5. cPanel'e yükleyin.
acme.sh --deploy -d example.com --deploy-hook cpanel_uapi
6. Kontrol edin
uapi SSL installed_hosts
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
| openssl x509 -noout -issuer -dates
Bu kanca, sertifikayı UAPI aracılığıyla uygun sanal sunucuya yazar. Dağıtım ayarları kaydedilir; bundan sonra cron, süresi dolmadan önce her şeyi otomatik olarak yenileyecek ve kuracaktır. Sertifikayı veren kuruluş "Let's Encrypt" olmalı ve son kullanma tarihi yaklaşık 90 gün sonra olmalıdır.
Bazı hosting sağlayıcıları kendi cPanel entegrasyonlarını kullanırlar. install_ssl ve buna benzer bir şeyle karşılık verir. adminbin Cpanel/hooks2/...: exit 255. acme.sh hala "başarıyla dağıtıldı" diye rapor veriyor ve bu genellikle doğru. Şüpheniz varsa şunu kullanın: uapi SSL installed_hosts (Adım 6) Let's Encrypt sertifikasının gerçekten yüklendiğini doğrulayın.
Umlaut içeren alan adları için acme.sh, sertifikayı dahili olarak Punycode biçiminde saklar (xn--…), kancanın otomatik eşleştiricisi ise Unicode biçimini karşılaştırır. Sonuç: "0 siteden 0'ına dağıtıldı" – hiçbir şey yüklenmedi. Çözüm: Doğrudan Punycode alan adıyla çalışın ve otomatik eşleştirmeyi devre dışı bırakın.:
# Punycode-Form der Domain vorher ermitteln (z. B. via idn-Tool oder Online-Konverter)
acme.sh --issue -d xn--<punycode> -d www.xn--<punycode> -w ~/public_html
export DEPLOY_CPANEL_AUTO_ENABLED='false'
acme.sh --deploy -d xn--<punycode> --deploy-hook cpanel_uapi
SSH erişimiyle AutoSSL'e ihtiyacınız yok: acme.sh sertifikayı düzenliyor, bu da cpanel_uapi-Hook komutuyla yüklenir ve dahil edilen cron görevi otomatik olarak güncellenmesini sağlar. Kurulum tamamlandıktan sonra, ücretsiz HTTPS kendi kendine kalıcı olarak çalışır. İlk çabayı gösteren herkes, gelecekteki tüm manuel yenilemelerden tasarruf eder ve aynı çözümü aynı hesaptaki herhangi bir ek alan adına tek bir ek komutla genişletebilir.