Unele pachete de găzduire partajată cu cPanel nu oferă AutoSSL sau oferă acest serviciu doar în planurile cu prețuri mai mari. Prin urmare, nu puteți emite un certificat Let's Encrypt gratuit prin interfața cPanel, iar toate domeniile rămân blocate cu un certificat autosemnat. Browserul afișează pagina ca „nesigură”. Soluția: obțineți certificatul dvs. folosind acme.sh și instalați-l prin intermediul UAPI-ului cPanel – reînnoire automată, complet fără AutoSSL.
HTTPS este obligatoriu de mult timp. Prin urmare, este cu atât mai frustrant atunci când propriul pachet de găzduire nu oferă o modalitate convenabilă de a obține un certificat gratuit. Acest lucru se întâmplă mai des decât ați putea crede, de exemplu, cu pachete entry-level ieftine sau după o modificare a planului în care un certificat nu mai este inclus brusc. Cu toate acestea, această lacună poate fi închisă elegant și permanent cu doar câteva linii de cod în shell - procesul complet este descris mai jos.
1. Conectați-vă prin SSH
ssh -p <port> <user>@example.com
2. Instalați acme.sh
curl https://get.acme.sh | sh -s email=me@example.com
source ~/.bashrc
3. Setați Let's Encrypt ca autoritate de certificare (CA)
acme.sh --set-default-ca --server letsencrypt
4. Emiterea certificatului
acme.sh --issue -d example.com -d www.example.com -w ~/public_html
5. Instalare în cPanel
acme.sh --deploy -d example.com --deploy-hook cpanel_uapi
6. Verificați
uapi SSL installed_hosts
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
| openssl x509 -noout -issuer -dates
Hook-ul scrie certificatul pe gazda virtuală corespunzătoare prin UAPI. Setările de implementare sunt salvate – de acum înainte, cron va reînnoi și va instala automat totul înainte de expirare. Emitentul este „Let's Encrypt”, iar data de expirare este de aproximativ 90 de zile în viitor. Dacă vechiul certificat autosemnat apare încă, o reîncărcare completă în browser ajută de obicei – certificatul anterior poate fi stocat temporar în cache.
Unele gazde rulează propriul hook cPanel. install_ssl și răspunde cu ceva de genul adminbin Cpanel/hooks2/...: exit 255. acme.sh raportează în continuare „implementat cu succes” – și este corect. În acest caz, hook-ul eșuează din cauza unui pas ulterior (cum ar fi o notificare internă sau o operațiune de sincronizare de către furnizorul de găzduire), nu din cauza instalării propriu-zise.
Pentru domeniile cu umlaut-uri, acme.sh stochează intern certificatul în forma Punycode (xn--…), în timp ce potrivirea automată a hook-ului compară forma Unicode. Rezultat: „implementat pe 0 din 0 site-uri” – nimic nu este instalat. Lucrul insidios este că acme.sh raportează și aici „Succes”, deci eroarea este ușor de trecut cu vederea. Soluție: Lucrați direct cu domeniul Punycode și dezactivați potrivirea automată.:
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
Cu acces SSH, nu aveți nevoie de AutoSSL: acme.sh emite certificatul, care cpanel_uapi-Hook-ul îl instalează, iar cron job-ul inclus îl menține actualizat automat. Odată configurat, serviciul HTTPS gratuit rulează continuu pe cont propriu. Cei care investesc efort inițial economisesc fiecare reînnoire manuală în viitor - și pot extinde aceeași soluție la orice domeniu suplimentar din același cont cu o singură comandă.