bg-tutorials

Cum să remediați erorile certificatului SSL ACME

Erori ACME SSL

Atunci când configurați sau reînnoiți certificate SSL utilizând protocolul ACME, nu este neobișnuit să întâmpinați erori enigmatice care opresc procesul. Acest ghid vă conduce prin cele mai frecvente probleme legate de ACME, vă explică ce înseamnă de fapt și vă arată exact cum să le rezolvați. Fie că instalați un certificat nou, automatizați reînnoirile sau depanați o validare eșuată, acesta este locul de unde trebuie să începeți.


Legătura contului extern lipsește sau este invalidă

Această eroare apare atunci când serverul ACME necesită External Account Binding (EAB), dar clientul dvs. nu a trimis acreditări valide sau le-a omis complet. EAB este o modalitate de a dovedi că sunteți autorizat să utilizați un anumit server ACME.

Cum se rezolvă problema:

  1. Verificați de două ori ID-ul cheii și cheia HMAC: Asigurați-vă că ambele sunt corecte și exact așa cum au fost furnizate. Nu există spații ascunse sau întreruperi de linie.
  2. Utilizați URL-ul corect al directorului ACME: Unii clienți vă permit să treceți –server. Nu amestecați URL-urile de producție și de staționare.
  3. Adăugați steagurile EAB: Dacă utilizați acme.sh, indicatoarele ar trebui să arate astfel: –eab-kid –eab-hmac-key
  4. Actualizați-vă clientul ACME: Dacă clientul este învechit, actualizați-l. Versiunile mai noi au un suport EAB mai bun.

Contul nu există

Eroarea urn:ietf:params:acme:error:accountDoesNotExist apare atunci când clientul ACME încearcă să utilizeze o cheie de cont locală (cea stocată în folderul său de configurare) pe care CA nu o recunoaște.

În termeni simpli, clientul dvs. ACME face referire la un cont care nu există sau care a fost șters la nivelul AC. Acest lucru se întâmplă frecvent atunci când reinstalați clientul, mutați serverele sau comutați între punctele finale de staționare și cele de producție.

Cum se rezolvă problema:

1. Reînregistrați-vă contul ACME: Folosiți credențialele corecte pentru legarea contului extern (EAB) atunci când vă înregistrați.
Exemplu pentru acme.sh:

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

2. Verificați URL-ul serverului ACME: Asigurați-vă că vă înregistrați cu punctul final corect care corespunde comenzii dvs.

3. Evitați reutilizarea fișierelor de cont: Nu mutați account.conf sau cheile de cont între servere sau clienți decât dacă sunteți 100% sigur că sunt valabile pentru același CA și același mediu.


Bad Nonce sau eroare anti-replay

Clientul dvs. ACME a trimis o cerere utilizând un nonce (un jeton unic de la CA) care a fost deja utilizat, a expirat sau nu este valabil. Serverul o blochează pentru a preveni atacurile de tip replay. Urn:ietf:params:acme:error:badNonce este, de obicei, o problemă temporară cauzată de o sincronizare defectuoasă, de cereri întârziate sau de nepotrivirea ceasului.

Cum se rezolvă problema:

1. Reîncercați cererea: Majoritatea clienților ACME (cum ar fi acme.sh) vor încerca din nou automat atunci când primesc o eroare badNonce. Dacă nu, rulați manual ultima comandă. Ar trebui să funcționeze la a doua încercare.

2. Sincronizați ceasul serverului: O oră de sistem dezechilibrată poate cauza erori de redare. Rulați:

timedatectl status
timedatectl set-ntp true

Sau asigurați-vă că ntpd sau chronyd funcționează corect.

3. Verificați întârzierile proxy-ului sau CDN-ului: Dacă vă aflați în spatele Cloudflare, al unui distribuitor de sarcină sau al unui proxy lent, acesta ar putea întârzia solicitările suficient de mult pentru a invalida nonce-ul. Încercați să îl ocoliți temporar.


Un identificator solicitat nu a fost delegat

Când apare eroarea urn:ietf:params:acme:error:rejectedIdentifier, serverul ACME a respins unul sau mai multe dintre numele de domeniu pe care ați încercat să le validați. De obicei, acest lucru se datorează faptului că:

  • Domeniul nu există în DNS public
  • Nu există nicio înregistrare DNS îndreptată către serverul dvs.
  • Domeniul nu este autorizat pentru emiterea de certificate

Mai simplu spus, CA nu poate verifica dacă dețineți sau controlați domeniul respectiv.

Cum se rezolvă problema:

1. Utilizați formatul corect în comandă: Nu includeți niciun protocol, slash-uri sau URL-uri complete.

  • Corect: -d example.com
  • Greșit: -d http://example.com

2. Verificați dacă domeniul există și se rezolvă. Rulați:

dig example.com +short

Dacă nu există niciun rezultat, înseamnă că domeniul dvs. nu este încă activ, reparați mai întâi setările DNS.

2. Potriviți comanda ACME: Dacă utilizați un certificat ACME comercial, asigurați-vă că domeniul pentru care emiteți certificatul este listat pe comanda originală. Nu puteți adăuga domenii din mers. Acesta trebuie să fie aprobat în prealabil.

3. Aveți grijă la greșelile de scriere și la încurcăturile de subdomenii: Verificați de două ori lucruri precum www.example.com vs example.com. Acestea sunt tratate ca intrări separate.


Răspuns neautorizat sau invalid

Autoritatea de certificare nu a putut verifica proprietatea asupra domeniului dumneavoastră. Cel mai adesea, aceasta nu a putut accesa fișierul de provocare ACME pe care clientul dvs. l-a plasat pe server. Aceasta este o problemă de validare HTTP: CA a încercat să ajungă la site-ul dvs., dar nu a putut găsi sau citi provocarea.

Mesajul de eroare exact este urn:ietf:params:acme:error:unauthorized. Acesta poate apărea, de asemenea, ca: „Invalid response from http://yourdomain.com/.well-known/acme-challenge/…”.

Cum se rezolvă problema:

  • Asigurați-vă că serverul dvs. este accesibil pe portul 80 (chiar dacă site-ul dvs. redirecționează în mod normal către HTTPS).
  • Verificați de două ori calea webroot în configurația clientului ACME. Fișierele de provocare trebuie să fie scrise în: /.well-known/acme-challenge/.
  • Dacă serverul dvs. forțează redirecționările HTTPS, permiteți temporar cererile HTTP simple pentru calea respectivă.
  • Dezactivați CDN-urile, proxy-urile inverse sau firewall-urile care ar putea interfera cu validarea HTTP externă de la CA.
  • Verificați permisiunile fișierului și confirmați că fișierul de provocare este într-adevăr creat și accesibil publicului.

Token-ul nu a fost găsit sau fișierul nu poate fi accesat (404 sau 403)

Serverul ACME a încercat să obțină fișierul de provocare HTTP, dar a primit un răspuns 404 (Not Found) sau 403 (Forbidden). Aceasta înseamnă că fișierul fie nu a fost plasat corect, fie nu este accesibil publicului, fie serverul dvs. web blochează accesul.

Mesajele de eroare exacte pot varia. Iată ce vă puteți aștepta să vedeți:

  • Răspuns invalid de la http://yourdomain.com/.well-known/acme-challenge/… [404]
  • Răspuns invalid… [403 Forbidden]
  • urn:ietf:params:acme:error:neautorizat

Cum se rezolvă problema:

Verificați rădăcina documentului pentru domeniu și asigurați-vă că se potrivește cu locul în care clientul ACME plasează fișierul: /.well-known/acme-challenge/

Confirmați că fișierul token există și poate fi accesat dintr-un browser. Ar trebui să puteți deschide URL-ul provocării direct în browser și să vedeți conținutul token-ului.

Setați permisiunile corecte pentru fișiere: fișierul de provocare ACME și folderele părinte ale acestuia trebuie să poată fi citite de toată lumea.

Dacă utilizați reguli .htaccess, firewall-uri sau plugin-uri de securitate (ca pe WordPress), asigurați-vă că acestea nu blochează accesul la calea /.well-known/.

Dacă primiți 403, verificați și proprietatea fișierului și restricțiile SELinux/AppArmor, dacă este cazul.


Recordul CAA interzice emiterea

DNS-ul dvs. are o înregistrare CAA care restricționează autoritățile de certificare care pot emite certificate pentru domeniul dvs. Dacă CA pe care încercați să o utilizați nu este listată, aceasta este blocată în mod implicit. Este posibil să vedeți următorul mesaj de eroare: urn:ietf:params:acme:error:caa

Aceasta este o politică la nivel de DNS, nu o problemă a serverului. CA-urile trebuie să verifice CAA înainte de a emite orice certificat.

Cum se rezolvă problema:

Verificați zona DNS a domeniului dvs. pentru înregistrările CAA. Puteți utiliza instrumente online sau comanda dig:

dig CAA yourdomain.com

Dacă nu există nicio înregistrare CAA, orice CA poate emite certificatul. Dar dacă există unul, asigurați-vă că include numele exact al furnizorului de certificate, cum ar fi:

  • 0 emite „sectigo.com”
  • 0 emite „digicert.com”

Dacă utilizați un certificat wildcard, adăugați și linia issuewild: 0 issuewild „sectigo.com”

Așteptați câteva minute pentru propagarea DNS, apoi încercați din nou comanda ACME. Dacă nu sunteți sigur, eliminați temporar înregistrarea CAA pentru a testa emiterea, dar numai dacă gestionați DNS-ul în siguranță.


TXT Record Not Found (pentru certificatele Wildcard)

Certificatele wildcard (precum *.example.com) necesită validarea DNS-01, singura metodă permisă de toate CA-urile pentru domeniile wildcard.

DNS-01 funcționează cerându-vă să creați o înregistrare TXT specială în DNS: _acme-challenge.example.com

Dacă această înregistrare lipsește sau nu s-a propagat încă, veți primi această eroare.

Exemple de erori:

  • urn:ietf:params:acme:error:dns :: Problema DNS: NXDOMAIN caută TXT pentru _acme-challenge.example.com
  • TXT record not found for _acme-challenge.example.com

Cum se rezolvă problema:

În furnizorul dvs. de DNS, creați o înregistrare TXT:

  • Nume: _acme-challenge.example.com
  • Valoare: (simbolul pe care vi-l dă clientul ACME; unic pentru fiecare cerere)

Așteptați 1-10 minute pentru propagarea DNS. Unii furnizori au nevoie de mai mult timp. Confirmați cu următoarea comandă.

dig TXT _acme-challenge.example.com

De asemenea, puteți utiliza un instrument online de căutare DNS online. Odată vizibil, încercați din nou validarea.


Prea multe solicitări sau limită de tarif depășită

Eroarea apare sub forma urn:ietf:params:acme:error:rateLimited sau 429 Too Many Requests atunci când serverul ACME refuză să proceseze cererea dvs. deoarece ați atins o limită de rată.

Acest lucru se întâmplă de obicei atunci când solicitați prea multe certificate pentru același domeniu (domenii) într-o perioadă scurtă sau trimiteți prea multe cereri eșuate la rând.

Cum se rezolvă problema:

Majoritatea limitelor de viteză se resetează automat după o oră, o zi sau o săptămână, în funcție de ceea ce ați atins. Dacă utilizați un script, verificați jurnalele și remediați erorile înainte de a încerca din nou. Nu folosiți forța brută orbește, aceasta nu face decât să agraveze blocajul.

Pentru validările DNS-01, evitați repetarea rapidă a solicitărilor după mici erori de înregistrare TXT. Așteptați propagarea DNS. În cazul în care CA-ul dvs. furnizează o pagină de stare a limitei de viteză sau antete, verificați-le pentru a obține timpi de resetare mai preciși.


Erori DNS sau eșecuri de căutare

Dacă primiți mesaje precum„DNS problem: NXDOMAIN looking up A for example.com” sau„Temporary failure in name resolution„, înseamnă că serverul ACME nu a putut rezolva numele domeniului dvs., fie pentru că domeniul nu există, nu este încă propagat sau nu are înregistrări IP valide.

Autoritatea de certificare se bazează pe DNS pentru a verifica dacă domeniul dvs. există și indică un loc real. Dacă nu poate ajunge la înregistrările dvs. A (IPv4) sau AAAA (IPv6), aceasta va opri procesul de validare.

Acest lucru se poate întâmpla dacă:

  • Domeniul dvs. este nou și DNS nu s-a propagat complet
  • Ați uitat să adăugați înregistrările DNS corecte
  • Lucrați într-o rețea locală sau internă fără vizibilitate DNS publică
  • Există o greșeală de tipar în numele de domeniu pe care l-ați trimis

Cum se rezolvă problema:

  • Verificați de două ori dacă domeniul dvs. are înregistrări A sau AAAA valide îndreptate către serverul dvs. live.
  • Utilizați instrumente precum dig, nslookup sau verificatoare online (de exemplu, whatsmydns.net) pentru a confirma propagarea.
  • Asigurați-vă că nu utilizați un domeniu privat sau intern. Validarea ACME funcționează numai pentru numele care pot fi rezolvate public.
  • Așteptați câteva minute după modificările DNS; acestea nu intră întotdeauna în vigoare instantaneu.

Nu s-a putut conecta la serverul ACME

Această eroare apare atunci când serverul dvs. nu poate ajunge la punctul final al API ACME. Aceasta poate apărea sub forma Conexiune refuzată, Timeout în timpul conexiunii, Nu s-a putut realiza conexiunea sau mesaje similare, în funcție de clientul ACME.

Cum se rezolvă problema:

  • Asigurați-vă că serverul dvs. permite conexiuni HTTPS de ieșire pe portul 443.
  • Verificați setările firewall-ului sau regulile de ieșire din rețea (în special în configurațiile cloud/VPS).
  • Dacă utilizați un proxy, permiteți traficul către domeniul serverului ACME al CA.
  • Confirmați că serverul dvs. are un rezolvator DNS funcțional.
  • Testați conectivitatea cu: curl https://acme.example.com (înlocuiți cu punctul final real al CA).
  • Reporniți clientul ACME după rezolvarea problemelor de rețea.

Scriptul post-reînnoire a eșuat

Această eroare apare după reînnoirea cu succes a certificatului, atunci când scriptul de urmărire menit să reîncarce serverul sau serviciul dvs. web nu a funcționat corect. În funcție de clientul dvs. ACME, puteți vedea mesaje precum „post-hook error”, „deploy script failed” sau „command not found”.

Cum se rezolvă problema:

  • Rulați manual scriptul post-reînnoire pentru a vedea ce se întrerupe.
  • Verificați căile fișierelor, în special pentru noile certificări și chei.
  • Asigurați-vă că scriptul are permisiuni de execuție (de exemplu, chmod +x script.sh).
  • Căutați greșeli de scriere, dependențe lipsă sau sintaxa greșită a comenzilor.
  • Dacă utilizați un cârlig de desfășurare sau un cârlig post, confirmați că clientul îl acceptă și că este configurat corespunzător.

Cuvinte finale

Am acoperit cele mai frecvente erori ale certificatului SSL ACMS și am oferit soluții rapide. Dacă niciuna dintre acestea nu vă rezolvă problema, rulați clientul ACME în modul de depanare. Majoritatea clienților vor oferi rezultate mai detaliate atunci când activați jurnalizarea. Aceste informații vă pot ajuta să identificați cauza reală și să faceți SSL-ul să funcționeze din nou.

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.