Lad os kryptere DomainFactory

Nogle delte hostingpakker med cPanel tilbyder ikke AutoSSL eller tilbyder dem kun til højere priser. Resultatet: Du kan ikke udstede et gratis Let's Encrypt-certifikat via cPanel-grænsefladen, og alle domæner sidder fast på et selvsigneret certifikat. Browseren viser siden som "ikke sikker". Vejen ud: Hent selv certifikatet med acme.sh og installer det via cPanel UAPI - automatisk fornyelse, uden AutoSSL.


HTTPS har længe været 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> <user>@example.com

2. Installer acme.sh

curl https://get.acme.sh | sh -s email=me@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

Krogen skriver certifikatet til den relevante vHost via UAPI. Implementeringsindstillingen er gemt - fra nu af fornyer og installerer cron alt uafhængigt, før det udløber. Udstederen er "Let's Encrypt", og udløbsdatoen er omkring 90 dage ude i fremtiden. Hvis det gamle, selvsignerede certifikat dukker op i stedet, hjælper en hård genindlæsning i browseren som regel – det tidligere certifikat kan gemmes midlertidigt.

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 "succesful deployed" - og det er korrekt. I dette tilfælde svigter krogen på grund af et efterfølgende trin (f.eks. et internt meddelelses- eller synkroniseringsjob fra værten), ikke på grund af den faktiske installation.

For domæner med umlauts gemmer acme.sh certifikatet internt i Punycode-formen (xn--…), mens krogens auto-matcher sammenligner Unicode-formen. Resultat: "udrullet til 0 af 0 websteder" - intet er installeret. Det vanskelige er, at acme.sh også rapporterer "Succes" her, så fejlen bliver let overset. Løsning: Arbejd direkte med Punycode-domænet, og sluk for automatisk tilstand:

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

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