bg-tutorials

Cum să instalați un certificat SSL ACME pe Plesk

Dacă gestionați site-uri web pe un Plesk, nu mai există niciun motiv să vă ocupați manual de certificate. Cu configurația corectă, puteți automatiza emiterea, reînnoirea și instalarea certificatelor SSL utilizând protocolul ACME cu External Account Binding (EAB).

Plesk ACME SSL

Acest ghid vă arată exact cum să instalați un certificat SSL ACME pe Plesk (bazat pe Linux) utilizând ACME.sh, un client ACME ușor care funcționează fără probleme cu Plesk.

Dacă aveți găzduire partajată, este posibil să nu puteți utiliza această metodă. Majoritatea mediilor partajate nu permit accesul root sau scripturi personalizate. Acest ghid funcționează pentru serverele VPS și dedicate, unde controlați stiva de găzduire.


Înainte de a începe

Asigurați-vă că aveți următoarele elemente pregătite înainte de a trece la etape:

  • Un server sau VPS cu Plesk Obsidian
  • Acces SSH la server. Fie root, fie un utilizator cu privilegii sudo
  • Un domeniu live îndreptat către server prin intermediul unei înregistrări A sau AAAA
  • Portul 80 deschis și accesibil publicului (necesar pentru validarea HTTP-01)
  • acreditările EAB de la furnizorul SSL (EAB KID și EAB HMAC Key)

Puncte finale ACME de utilizat:

  • Sectigo: https://acme.sectigo.com/v2/DV
  • DigiCert: https://acme.digicert.com/v2/acme

Pasul 1: Verificați rădăcina documentului site-ului dvs. web în Plesk

Veți avea nevoie de calea către folderul rădăcină al site-ului dvs., astfel încât ACME.sh să poată plasa corect fișierele de validare.

  1. Conectați-vă la Plesk
  2. Mergeți la Site-uri web și domenii > yourdomain.com > Setări de găzduire
  3. Copiați valoarea rădăcinii documentului. Seamănă cu: /var/www/vhosts/yourdomain.com/httpdocs
  4. Păstrați această cale la îndemână, o veți utiliza în etapele următoare.

Pasul 2: Activarea accesului SSH (dacă este necesar)

Dacă planul dvs. de găzduire nu are SSH activat:

  1. Mergeți la Site-uri web și domenii > yourdomain.com > Web Hosting Access
  2. Sub Acces la server prin SSH, alegeți /bin/bash sau /usr/bin/bash
  3. Salvați setările

Dacă vă aflați pe o gazdă gestionată/partajată, contactați asistența pentru a solicita acces SSH.


Pasul 3: Conectați-vă la serverul dvs. prin SSH

Din terminalul local, conectați-vă la server:

ssh [email protected]

Sau, dacă utilizați un utilizator non-root:

ssh [email protected]

Pasul 4: Instalarea ACME.sh

Rulați programul oficial de instalare:

curl https://get.acme.sh | sh
source ~/.bashrc

Apoi verificați versiunea pentru a confirma că este instalată:

acme.sh --version

Dacă nu reușește, asigurați-vă că curl și git sunt instalate. Puteți rula din nou instalarea cu --force, dacă este necesar.


Pasul 5: Înregistrați-vă contul cu EAB

Înregistrarea ACME este o configurare unică care vă conectează serverul la autoritatea de certificare, astfel încât viitoarele cereri de certificate pot fi validate și procesate automat.

Această comandă vă înregistrează contul ACME la furnizorul SSL(Sectigo sau DigiCert) utilizând acreditările EAB unice.

acme.sh --register-account \
  --server https://acme.sectigo.com/v2/DV \
  --eab-kid YOUR_EAB_KID \
  --eab-hmac-key YOUR_EAB_HMAC_KEY \
  --accountemail [email protected]

Iată ce înseamnă fiecare parte:

  • acme.sh --register-account – Începe înregistrarea contului ACME
  • --server – URL-ul ACME al furnizorului dumneavoastră (Sectigo sau DigiCert)
  • --eab-kid – ID-ul dvs. cheie EAB de la furnizor
  • --eab-hmac-key – Cheia dvs. secretă EAB HMAC (șir lung)
  • --accountemail – Adresa dvs. de e-mail de contact pentru contul ACME

Această comandă trebuie să fie personalizată cu detaliile și adresa dvs. de e-mail EAB reale. Nu o copiați ca atare.

Dacă lăsați marcajele ca YOUR_EAB_KID, comanda va eșua cu o eroare de autentificare.

Odată ce se execută cu succes, serverul dvs. este acum autorizat să solicite certificate SSL de la acel furnizor; nu este nevoie să vă înregistrați din nou în viitor, cu excepția cazului în care schimbați furnizorii sau credențialele.


Pasul 6: Pregătiți-vă pentru validarea HTTP

Creați directorul de provocări ACME:

mkdir -p /var/www/vhosts/yourdomain.com/httpdocs/.well-known/acme-challenge

Apoi testați dacă funcționează:

echo "ok" > /var/www/vhosts/yourdomain.com/httpdocs/.well-known/acme-challenge/testfile
curl -I http://yourdomain.com/.well-known/acme-challenge/testfile

Ar trebui să vedeți HTTP/1.1 200 OK. Dacă nu, verificați regulile firewall-ului, accesul la portul 80 sau calea rădăcinii documentului.


Pasul 7: Ocolirea HTTPS forțat pentru ACME Path

Dacă site-ul dvs. redirecționează tot traficul către HTTPS, validarea HTTP-01 va fi întreruptă, cu excepția cazului în care permiteți folderului challenge să o ocolească.

Dacă utilizați Apache (implicit pe Plesk Linux)

Modificați fișierul .htaccess în rădăcina documentului și adăugați acest lucru în partea de sus:

RewriteEngine On
RewriteRule ^.well-known/acme-challenge/ - [L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Dacă utilizați Nginx (sau Nginx este frontală pentru Apache)

Apache .htaccess nu vă va ajuta aici deoarece Nginx se ocupă mai întâi de redirecționare. În schimb, trebuie să adăugați o directivă Nginx personalizată în Plesk:

  1. Mergeți la Site-uri web și domenii > yourdomain.com > Setări Apache & Nginx
  2. Găsiți câmpul etichetat Additional Nginx directives
  3. Lipiți acest lucru în:
location ^~ /.well-known/acme-challenge/ {
root /var/www/vhosts/yourdomain.com/httpdocs;
allow all;
try_files $uri =404;
}

Acest lucru îi spune lui Nginx să servească calea de provocare direct, fără redirecționare HTTPS sau proxy către Apache. Salvați și aplicați modificările.


Pasul 8: Eliberarea certificatului

Acum puteți solicita certificatul. Iată un exemplu cu Sectigo și două variante de domeniu:

acme.sh --issue \
  -d yourdomain.com \
  -d www.yourdomain.com \
  -w /var/www/vhosts/yourdomain.com/httpdocs \
  --server https://acme.sectigo.com/v2/DV

Puteți include atâtea steaguri -d câte sunt necesare. Odată ce certificatul este emis, ACME.sh salvează totul în acest folder: /root/.acme.sh/yourdomain.com/

Cele două fișiere de care veți avea nevoie pentru Plesk sunt:

  • yourdomain.com.key: aceasta este cheia dvs. privată
  • fullchain.cer: acesta este fișierul dvs. de certificat și include lanțul complet (certificatul dvs. + lanțul CA)

Acestea sunt fișierele pe care le veți încărca sau le veți folosi în CLI pentru a instala certificatul în Plesk.


Pasul 9: Importați certificatul în Plesk prin intermediul interfeței

  1. Mergeți la Site-uri web și domenii > yourdomain.com > Certificate SSL/TLS
  2. Faceți clic pe Adăugare certificat SSL/TLS
  3. Încărcați certificatul (selectați fullchain.cer) și cheia privată (selectați yourdomain.com.key). Faceți clic pe Salvare
  4. Reveniți la Setări de găzduire și selectați acest certificat în secțiunea Suport SSL/TLS
  5. Faceți clic pe OK sau Aplicați

Domeniul dvs. utilizează acum certificatul SSL ACME terță parte.


Pasul 10: Automatizați importul prin Plesk CLI (opțional, ideal pentru Cron)

Pentru a automatiza aplicarea cert în viitoarele reînnoiri, utilizați CLI:

plesk bin certificate -c "acme-yourdomain" \
  -domain yourdomain.com \
  -cert-file /root/.acme.sh/yourdomain.com/fullchain.cer \
  -key-file  /root/.acme.sh/yourdomain.com/yourdomain.com.key

plesk bin domain -u yourdomain.com -ssl true -certificate-name "acme-yourdomain"
plesk bin httpdmng --reconfigure-domain yourdomain.com

Dacă comanda plesk nu este recunoscută, încercați calea completă: /usr/sbin/plesk bin …


Pasul 11: Automatizați reînnoirile cu ajutorul scriptului Deploy

ACME.sh reînnoiește automat certificatele cu ~30 de zile înainte de expirare. Dar vom introduce un cârlig post-renew pentru a le aplica automat în Plesk.

1. Creați scriptul de implementare

nano /usr/local/bin/plesk-acme-deploy.sh

Lipiți următoarele:

#!/usr/bin/env bash
set -euo pipefail

DOMAIN="yourdomain.com"
CERT_DIR="/root/.acme.sh/${DOMAIN}"
CERT_NAME="acme-${DOMAIN}"

CERT_FILE="${CERT_DIR}/fullchain.cer"
KEY_FILE="${CERT_DIR}/${DOMAIN}.key"

/usr/sbin/plesk bin certificate -c "${CERT_NAME}" \
  -domain "${DOMAIN}" \
  -cert-file "${CERT_FILE}" \
  -key-file  "${KEY_FILE}"

/usr/sbin/plesk bin domain -u "${DOMAIN}" -ssl true -certificate-name "${CERT_NAME}"
/usr/sbin/plesk bin httpdmng --reconfigure-domain "${DOMAIN}"

echo "Plesk deploy complete for ${DOMAIN}"

2. Salvați și faceți-l executabil

chmod +x /usr/local/bin/plesk-acme-deploy.sh

3. Conectați-l la ACME.sh

acme.sh --install-cert -d yourdomain.com \
  --key-file       ~/.acme.sh/yourdomain.com/yourdomain.com.key \
  --fullchain-file ~/.acme.sh/yourdomain.com/fullchain.cer \
  --reloadcmd "/usr/local/bin/plesk-acme-deploy.sh"

De acum înainte, fiecare reînnoire se va aplica la Plesk.


Pasul 12: Testați totul

Vizitați site-ul dvs. la https://yourdomain.com. Certificatul ar trebui să fie valabil și să arate CA-ul dvs.

Pentru a testa reînnoirea și implementarea manuală, executați:

acme.sh --renew -d yourdomain.com --force

Apoi urmăriți jurnalul:

tail -n 60 ~/.acme.sh/acme.sh.log

Ar trebui să vedeți o reînnoire de succes și „Plesk deploy complete” la sfârșit.


Probleme comune și depanare

Chiar și cu configurația corectă, lucrurile nu merg întotdeauna bine la prima încercare, în special în ceea ce privește validarea domeniului, redirecționările sau traseele fișierelor. Mai jos sunt prezentate cele mai frecvente probleme cu care vă puteți confrunta la emiterea sau reînnoirea certificatului și cum să le rezolvați rapid.

Validarea HTTP eșuează (404, timeout sau testfile not found)

Aceasta înseamnă că fișierul de provocare ACME nu este servit corect.

  • Verificați de două ori rădăcina documentului în Plesk > Hosting Settings.
  • Asigurați-vă că portul 80 este deschis și nu este blocat de firewall, panoul de găzduire sau furnizorul de cloud.
  • Dacă aveți o redirecționare către HTTPS, asigurați-vă că /.well-known/acme-challenge/ este exclus, așa cum s-a arătat mai devreme.

„neautorizat” sau „răspuns invalid” în timpul emiterii

Serverul ACME nu a putut verifica provocarea dvs., probabil din cauza uneia dintre următoarele cauze:

  • Înregistrările DNS ale domeniului dvs. nu au fost încă actualizate (înregistrările A sau AAAA lipsesc sau încă se propagă).
  • Fișierul de test nu a fost accesibil, a fost eliminat prea devreme sau a fost blocat de o regulă.
  • Utilizați un CDN sau WAF (cum ar fi Cloudflare) care interceptează traficul HTTP. Întrerupeți temporar proxy-ul sau lista albă a căii ACME.

Nu se întâmplă nimic după reînnoire

Certificatul se reînnoiește, dar nu se aplică în Plesk.

Asigurați-vă că calea scriptului de implementare este corectă în –reloadcmd.

Verificați dacă scriptul este executabil prin rularea:

chmod +x /usr/local/bin/plesk-acme-deploy.sh

Uită-te în interiorul jurnalului ACME cu:

tail -n 60 ~/.acme.sh/acme.sh.log

Erorile vor apărea acolo.

Plesk CLI import eșuează

Scriptul dvs. de implementare ar putea rula, dar certificatul nu se aplică.

  • Dacă comanda plesk nu este găsită, încercați să utilizați calea completă: /usr/sbin/plesk
  • Verificați de două ori dacă fișierele.key și .cer chiar există și dacă au numele corect.
  • Pentru a forța o reconfigurare manuală, executați:
plesk bin httpdmng --reconfigure-domain yourdomain.com

Wrods finale

Acum aveți o configurare SSL curată, complet automatizată, care rulează pe serverul dvs. Plesk. Din acest moment, certificatul dvs. se va reînnoi automat în fundal, iar scriptul va actualiza Plesk imediat ce emiteți un certificat nou. Ați preluat controlul complet asupra ciclului de viață al certificatului dvs. și v-ați făcut viața mult mai ușoară.

Economisește 10% la certificatele SSL în momentul plasării comenzii!

Eliberare rapidă, criptare puternică, încredere în browser de 99,99%, suport dedicat și garanție de returnare a banilor în 25 de zile. Codul cuponului: SAVE10

A detailed image of a dragon in flight

Autor cu experiență, specializat în certificate SSL. Transformă subiectele complexe despre securitatea cibernetică în conținut clar și captivant. Contribuie la îmbunătățirea securității digite prin narațiuni cu impact.