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 – otomatik olarak yenilenir, AutoSSL olmadan tamamen güvenlidir.
HTTPS uzun zamandır zorunlu. Bu nedenle, kendi hosting paketinizin ücretsiz sertifika edinmenin uygun bir yolunu sunmaması daha da sinir bozucu. Bu durum, örneğin ucuz giriş seviyesi paketlerde veya plan değişikliğinden sonra sertifikanın aniden artık dahil olmaması durumunda, düşündüğünüzden daha sık yaşanır. Ancak, bu açık, shell'de sadece 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> <user>@example.com
2. acme.sh dosyasını yükleyin.
curl https://get.acme.sh | sh -s email=me@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" olup, son kullanma tarihi yaklaşık 90 gün sonradır. Eski, kendinden imzalı sertifika hala görünüyorsa, tarayıcıda sayfayı yeniden yüklemek genellikle yardımcı olur; önceki sertifika geçici olarak önbelleğe alınmış olabilir.
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 doğru. Bu durumda, kanca, gerçek kurulumdan değil, sonraki bir adımdan (örneğin barındırma sağlayıcısı tarafından yapılan dahili bir bildirim veya senkronizasyon işi) dolayı başarısız oluyor.
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. Sinsi olan şey, acme.sh'nin burada da "Başarılı" olarak rapor vermesi, bu nedenle hata kolayca gözden kaçabilir. Çözüm: Doğrudan Punycode alan adıyla çalışın ve otomatik eşleştirmeyi devre dışı bırakın.:
python3 -c "import sys;print(sys.argv[1].encode('idna').decode())" hallöle.de
acme.sh --issue -d xn--hallle-zxa.de -d www.xn--hallle-zxa.de -w ~/public_html
export DEPLOY_CPANEL_AUTO_ENABLED='false'
acme.sh --deploy -d xn--hallle-zxa.de --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 hizmeti kendi kendine sürekli olarak çalışır. İlk çabayı gösterenler, gelecekteki tüm manuel yenilemelerden tasarruf eder ve aynı çözümü tek bir komutla aynı hesaptaki herhangi bir ek alan adına genişletebilirler.