Låt oss kryptera DomainFactory

Vissa delade webbhotellspaket med cPanel erbjuder inte AutoSSL – eller bara i dyrare planer. Som ett resultat kan du inte utfärda ett gratis Let's Encrypt-certifikat via cPanel-gränssnittet, och alla domäner sitter fast med ett självsignerat certifikat. Webbläsaren visar sidan som "inte säker". Lösningen: skaffa certifikatet själv med hjälp av acme.sh och installera det via cPanel UAPI. Det förnyas automatiskt utan behov av AutoSSL.


HTTPS är nu obligatoriskt: det gröna hänglåset är standard, och webbläsare bestraffar allt annat med tydliga varningar. Det är desto mer frustrerande om ditt eget webbhotellspaket inte erbjuder ett bekvämt sätt att få ett gratis certifikat. Detta gap kan dock elegant och permanent stängas med några rader kod i skalet – hela processen beskrivs nedan.

1. Logga in via SSH

ssh -p <port> <cpanel-user>@<host>

2. Installera acme.sh

curl https://get.acme.sh | sh -s email=du@example.com
source ~/.bashrc

3. Ställ in Let's Encrypt som CA

acme.sh --set-default-ca --server letsencrypt

4. Utfärda certifikat

acme.sh --issue -d example.com -d www.example.com -w ~/public_html

5. Installera i cPanel

acme.sh --deploy -d example.com --deploy-hook cpanel_uapi

6. Kontrollera

uapi SSL installed_hosts
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
     | openssl x509 -noout -issuer -dates

Hooken skriver certifikatet till lämplig virtuell värd via UAPI. Distributionsinställningarna sparas – från och med nu kommer cron automatiskt att förnya och installera allt innan det löper ut. Utfärdaren ska vara "Let's Encrypt" och utgångsdatumet ska vara ungefär 90 dagar framåt.

Vissa webbhotell kör sin egen cPanel-hook. install_ssl och svarar med något i stil med adminbin Cpanel/hooks2/...: exit 255. acme.sh rapporterar fortfarande "luckat driftsatt" – och det stämmer oftast. Om du är osäker, använd uapi SSL installed_hosts (Steg 6) Kontrollera att Let's Encrypt-certifikatet faktiskt har installerats.

För domäner med umlauts lagrar acme.sh certifikatet internt i Punycode-formen (xn--…), medan hookens automatiska matchning jämför Unicode-formuläret. Resultat: "distribuerad till 0 av 0 webbplatser" – ingenting är installerat. Lösning: arbeta direkt med Punycode-domänen och inaktivera automatisk matchning.:

# Punycode-Form der Domain vorher ermitteln (z. B. via idn-Tool oder Online-Konverter)
acme.sh --issue -d xn--<punycode> -d www.xn--<punycode> -w ~/public_html
export DEPLOY_CPANEL_AUTO_ENABLED='false'
acme.sh --deploy -d xn--<punycode> --deploy-hook cpanel_uapi

Med SSH-åtkomst behöver du inte AutoSSL: acme.sh utfärdar certifikatet, vilket cpanel_uapi-Hook installerar det, och det medföljande cron-jobbet håller det automatiskt uppdaterat. När den väl är konfigurerad körs den kostnadsfria HTTPS-tjänsten kontinuerligt på egen hand. De som investerar den initiala ansträngningen sparar sig varje manuell förnyelse i framtiden – och kan utöka samma lösning till vilken ytterligare domän som helst i samma konto med ett enda kommando.

Tillbaka