CPanel ile bazı paylaşılan barındırma paketleri AutoSSL sunmaz veya yalnızca daha yüksek fiyatlara sunar. Sonuç: cPanel arayüzü aracılığıyla ücretsiz bir Let's Encrypt sertifikası veremezsiniz ve tüm alan adları kendinden imzalı bir sertifikaya takılı kalır. Tarayıcı sayfayı "güvenli değil" olarak gösteriyor. Çıkış yolu: sertifikayı acme.sh ile kendiniz alın ve cPanel UAPI aracılığıyla yükleyin - AutoSSL olmadan otomatik olarak yenilenir.
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
Kanca, sertifikayı UAPI aracılığıyla uygun vHost'a yazar. Dağıtım ayarı kaydedilir - bundan sonra cron, süresi dolmadan önce her şeyi bağımsız olarak yeniler ve yükler. Veren kuruluş “Let's Encrypt”tir ve son kullanma tarihi yaklaşık 90 gün sonradır. Bunun yerine eski, kendinden imzalı sertifika görünürse, tarayıcıda donanımla yeniden yükleme genellikle yardımcı olur; önceki sertifika geçici olarak saklanabilir.
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 konuşlandırıldı" raporunu veriyor ve bu doğru. Bu durumda kanca, gerçek kurulum nedeniyle değil, sonraki bir adım nedeniyle (örneğin, ana bilgisayardan gelen dahili bir bildirim veya senkronizasyon işi) başarısız olur.
Umlaut içeren alan adları için acme.sh, sertifikayı dahili olarak Punycode biçiminde saklar (xn--…), kancanın otomatik eşleştiricisi Unicode formunu karşılaştırırken. Sonuç: "0 siteden 0'ına dağıtıldı" – hiçbir şey yüklenmedi. İşin zor yanı acme.sh'nin burada "Başarılı" olduğunu da bildirmesi, dolayısıyla hatanın kolayca gözden kaçırılmasıdır. Çözüm: Doğrudan Punycode alanıyla çalışın ve otomatik modu kapatı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.