Lad os kryptere DomainFactory

Nogle delte hostingpakker med cPanel tilbyder ikke AutoSSL – eller kun i dyrere planer. Som følge heraf kan du ikke udstede et gratis Let's Encrypt-certifikat via cPanel-grænsefladen, og alle domæner sidder fast med et selvsigneret certifikat. Browseren viser siden som "ikke sikker". Løsningen: Hent certifikatet selv ved hjælp af acme.sh og installer det via cPanel UAPI. Det fornyes automatisk uden behov for AutoSSL.


HTTPS er nu obligatorisk: det er derfor endnu mere frustrerende, når din egen hostingpakke ikke tilbyder en bekvem måde at få et gratis certifikat på. Dette sker oftere, end du måske tror – for eksempel med billige basispakker eller efter en planændring, hvor et certifikat pludselig ikke længere er inkluderet. Dette hul kan dog elegant og permanent lukkes med blot et par linjer kode i shell'en – hele processen er beskrevet nedenfor.

1. Log ind via SSH

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

2. Installer acme.sh

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

3. Indstil Let's Encrypt som CA

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

4. Udstedelse af certifikat

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

5. Installer i cPanel

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

6. Tjek

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

Hook'en skriver certifikatet til den relevante virtuelle vært via UAPI. Installationsindstillingerne gemmes – fra nu af vil cron automatisk forny og installere alt inden udløb. Udstederen skal være "Let's Encrypt", og udløbsdatoen skal være cirka 90 dage ude i fremtiden. Hvis det gamle, selvsignerede certifikat stadig vises, hjælper en hård genindlæsning i browseren normalt – det tidligere certifikat kan være midlertidigt cachelagret.

Nogle hosts kører deres egen cPanel-hook. install_ssl og svarer med noget i retning af adminbin Cpanel/hooks2/...: exit 255. acme.sh rapporterer stadig "implementeret med succes" – og det er normalt korrekt. I dette tilfælde fejler hook'en på grund af et efterfølgende trin – såsom en intern notifikation eller et synkroniseringsjob fra hostingudbyderen – ikke den faktiske installation.

For domæner med umlauts gemmer acme.sh certifikatet internt i Punycode-formen (xn--…), mens hookens automatiske matcher sammenligner Unicode-formularen. Resultat: "implementeret til 0 af 0 websteder" – intet er installeret. Den vanskelige del: acme.sh rapporterer også "Succes" her, så fejlen er let at overse. Løsning: arbejd direkte med Punycode-domænet og deaktiver 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-adgang behøver du ikke AutoSSL: acme.sh udsteder certifikatet, som cpanel_uapi-Hook installerer det, og det medfølgende cron-job holder det automatisk opdateret. Når det er konfigureret, kører den gratis HTTPS-tjeneste kontinuerligt af sig selv. De, der investerer den indledende indsats, sparer sig selv for enhver manuel fornyelse i fremtiden – og kan udvide den samme løsning til ethvert yderligere domæne i den samme konto med en enkelt kommando.

Tilbage