Certificat SSL ACME pe găzduirea cPanel cu acme.sh

Tipărire
  • 0

Pe găzduirea cPanel TopHost puteți folosi un abonament Sectigo ACME fără acces root: clientul acme.sh rulează în propriul dvs. cont, obține certificatul, îl instalează în cPanel prin API-ul cPanel și îl reînnoiește automat din sarcinile cron ale contului. Vă trebuie doar Terminal (sau SSH) și datele ACME. Dacă vă ajunge un certificat gratuit, nu aveți nimic de instalat: de el se ocupă AutoSSL.

De ce aveți nevoie

  • Un cont de găzduire cPanel cu acces la Terminal sau SSH. Dacă pictograma Terminal lipsește sau SSH nu este activat pentru contul dvs., cereți-ne printr-un tichet.
  • Server URL, EAB MAC ID și EAB MAC Key din Sectigo ACME Certificate-as-a-Service.
  • Domeniul se deschide deja de pe serverul nostru prin HTTP (DNS-ul lui indică spre contul de găzduire).
  • Directorul rădăcină al domeniului. În cPanel deschideți Domains din secțiunea Domains: coloana Document Root îl arată. Pentru domeniul principal este de obicei /home/USERNAME/public_html, unde USERNAME este numele dvs. de utilizator cPanel.

Pasul 1. Deschideți un terminal

În cPanel mergeți în secțiunea Advanced și apăsați Terminal. La prima deschidere confirmați avertismentul cu I understand and want to proceed. Vă puteți conecta și de pe calculator, cu un client SSH, după articolul Conectarea la server prin SSH.

Pasul 2. Instalați acme.sh

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

acme.sh se instalează în ~/.acme.sh/ și adaugă o sarcină zilnică în cron-ul contului. Dacă terminalul răspunde în continuare acme.sh: command not found, ieșiți și intrați din nou sau apelați programul cu calea completă: ~/.acme.sh/acme.sh.

Pasul 3. Înregistrați contul ACME

Rulați o singură dată, cu valorile dvs. din contul de client:

acme.sh --register-account \
  --server https://acme.sectigo.com/v2/DV \
  --eab-kid YOUR_EAB_MAC_ID \
  --eab-hmac-key YOUR_EAB_MAC_KEY

Ca să nu mai scrieți adresa serverului în fiecare comandă ulterioară, o puteți seta ca implicită:

acme.sh --set-default-ca --server https://acme.sectigo.com/v2/DV

Pasul 4. Obțineți certificatul

acme.sh --issue --server https://acme.sectigo.com/v2/DV \
  -d example.com -d www.example.com \
  -w /home/USERNAME/public_html

Folosiți -d câte o dată pentru fiecare nume; toate numele trebuie să fie în lista de domenii a abonamentului. Calea de după -w este directorul rădăcină din pagina Domains. acme.sh pune un fișier temporar în .well-known/acme-challenge/ din acel dosar, autoritatea de certificare îl citește prin HTTP, iar certificatul se salvează în ~/.acme.sh/.

Pasul 5. Instalați-l în cPanel

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

Hook-ul cpanel_uapi instalează certificatul pe domeniu prin API-ul cPanel, fără copiere manuală. acme.sh reține hook-ul, deci după fiecare reînnoire certificatul nou se instalează din nou singur.

Pasul 6. Verificați rezultatul

  • În cPanel deschideți SSL/TLS, apoi Manage SSL sites: la domeniu trebuie să apară certificatul nou, emitentul și data expirării. Același lucru, pe scurt, îl vedeți în SSL/TLS Status din secțiunea Security.
  • Deschideți https://example.com în browser și uitați-vă la detaliile certificatului de sub lacăt.

De regulă, AutoSSL nu atinge un certificat valid instalat de dvs.; intervine doar când certificatul lipsește, nu este valid sau urmează să expire.

Reînnoirea

Sarcina cron zilnică verifică certificatele și le reînnoiește din timp, înainte de expirare. O găsiți în cPanel, la Cron Jobs (o linie care conține acme.sh --cron); nu o ștergeți. Comenzi utile:

acme.sh --list
acme.sh --renew -d example.com --force

Prima afișează certificatele și data următoarei reînnoiri. A doua forțează imediat o reînnoire, ceea ce e bine pentru a testa o dată tot lanțul; nu o rulați în mod repetat.

Dacă ceva nu merge

  • Verificarea eșuează cu 404. Calea din -w nu este directorul rădăcină al acelui domeniu (se întâmplă des la domeniile suplimentare și subdomenii) sau o regulă din .htaccess blochează dosarul /.well-known/.
  • Verificarea eșuează cu timeout sau alt IP. Domeniul nu indică încă spre serverul nostru. Verificați nameserverele sau înregistrarea A și așteptați până când schimbarea DNS devine vizibilă.
  • Erori unauthorized sau EAB la înregistrare. EAB MAC ID sau cheia au fost copiate incomplet ori adresa serverului este greșită.
  • Domeniul nu este găsit sau nu este emis la rularea --deploy ori --renew. Versiunile actuale de acme.sh creează implicit chei ECC; dacă comanda nu găsește certificatul, adăugați-i --ecc.
  • Pasul de instalare raportează o eroare. Rulați-l din nou cu --debug și trimiteți-ne rezultatul într-un tichet, fără EAB MAC Key.

Documentația oficială acme.sh se află la github.com/acmesh-official/acme.sh/wiki.

Articole utile

Răspunsul a fost util?