Egyes cPanel megosztott tárhelycsomagok nem, vagy csak magasabb áron kínálják az AutoSSL- t. Az eredmény: A cPanel felületén nem lehet ingyenes Let's Encrypt tanúsítványt kiállítani, és minden tartomány egy önaláírt tanúsítványon ragad. A böngésző „nem biztonságos”-ként jeleníti meg az oldalt. A kiút: szerezze be a tanúsítványt az acme.sh segítségével, és telepítse a cPanel UAPI-n keresztül - automatikusan megújítva, AutoSSL nélkül.
A HTTPS már régóta kötelező. Annál bosszantóbb tehát, ha a saját tárhelycsomagod nem kínál kényelmes módot egy ingyenes tanúsítvány megszerzésére. Ez gyakrabban fordul elő, mint gondolnád, például az olcsó belépő szintű csomagoknál, vagy egy csomagváltás után, amikor a tanúsítvány hirtelen már nem szerepel a csomagban. Ez a hiányosság azonban elegánsan és véglegesen megszüntethető mindössze néhány sornyi kóddal a shellben – a teljes folyamatot az alábbiakban ismertetjük.
1. Jelentkezzen be SSH-n keresztül
ssh -p <port> <user>@example.com
2. Telepítse az acme.sh fájlt
curl https://get.acme.sh | sh -s email=me@example.com
source ~/.bashrc
3. Állítsa be a Let's Encrypt-et hitelesítésszolgáltatóként
acme.sh --set-default-ca --server letsencrypt
4. Igazolás kiállítása
acme.sh --issue -d example.com -d www.example.com -w ~/public_html
5. Telepítés a cPanelre
acme.sh --deploy -d example.com --deploy-hook cpanel_uapi
6. Ellenőrzés
uapi SSL installed_hosts
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
| openssl x509 -noout -issuer -dates
A hook UAPI-n keresztül írja a tanúsítványt a megfelelő vHostra. A telepítési beállítás mentve van - mostantól a cron mindent megújít és függetlenül telepít, mielőtt lejárna. A kibocsátó a „Let’s Encrypt”, és a lejárati dátum körülbelül 90 nap a jövőben. Ha helyette a régi, önaláírt tanúsítvány jelenik meg, általában egy kemény újratöltés segít a böngészőben – az előző tanúsítvány átmenetileg eltárolható.
Néhány tárhelyszolgáltató saját cPanel hookot üzemeltet. install_ssl és valami ilyesmivel válaszol adminbin Cpanel/hooks2/...: exit 255. Az acme.sh továbbra is „sikeresen telepített” jelentést ír – és ez így van. Ebben az esetben a hook egy következő lépés (például egy belső értesítési vagy szinkronizálási feladat a gazdagéptől) miatt sikertelen, nem pedig a tényleges telepítés miatt.
Az umlautot tartalmazó domainek esetében az acme.sh a tanúsítványt Punycode formátumban tárolja belsőleg (xn--…), míg a horog automatikus illesztője összehasonlítja a Unicode űrlapot. Eredmény: „0 helyről 0 telepítve” – semmi sincs telepítve. A trükkös dolog az, hogy az acme.sh itt is „Sikert” jelent, így a hiba könnyen figyelmen kívül hagyható. Megoldás: Közvetlenül a Punycode tartományban dolgozzon, és kapcsolja ki az automatikus módot:
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 hozzáféréssel nincs szükség AutoSSL-re: az acme.sh kiállítja a tanúsítványt, amely cpanel_uapiA -Hook telepíti, és a mellékelt cron feladat automatikusan frissíti. A beállítás után az ingyenes HTTPS szolgáltatás folyamatosan, önállóan fut. Azok, akik belefektetik a kezdeti erőfeszítést, a jövőben megspórolják maguknak a manuális megújítást – és egyetlen paranccsal kiterjeszthetik ugyanazt a megoldást ugyanazon fiók bármely további domainjére.