Titkosítsuk a DomainFactory-t

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.

Vissza