AutoSSL Cloudflare mögött: ha nem sikerül a domainvalidáció

SSL 4 perc olvasás

cPanel tárhelyeinken az AutoSSL ingyenes Let’s Encrypt tanúsítványt igényel és újít meg minden domainre. Az igényléshez a tanúsítványkiadó kívülről lekér egy ellenőrző fájlt a domain /.well-known/acme-challenge/ útvonaláról. Ha a domain a Cloudflare proxyja mögött van (narancssárga felhő), ez a kérés is a Cloudflare-en megy át, és egy alapbeállítású Cloudflare-zónában gond nélkül eljut a tárhelyig. Az átirányítás HTTPS-re sem zavarja.

Ha mégis elakad, szinte mindig egy Cloudflare-funkció nyeli el vagy alakítja át a kérést: egy tűzfalszabály kihívása (challenge), a Bot Fight Mode, az „I’m Under Attack” mód, egy átirányítási szabály, vagy az, hogy a Cloudflare egyáltalán nem éri el a tárhelyet. A megoldás az, hogy az ellenőrzés útvonalát a Cloudflare-ben érinthetetlenné teszi, nem az AutoSSL-lel kell küzdeni.

Miért nem segít a DNS-alapú ellenőrzés?

Ha a fájlos ellenőrzés nem sikerül, az AutoSSL DNS-alapú ellenőrzéssel próbálkozik: egy _acme-challenge TXT rekordot tesz a domain DNS-zónájába. De ha a domain névszerverei a Cloudflare-re mutatnak, a cPanel zónáját senki nem kérdezi le, a rekord a Cloudflare-ben nem jelenik meg. Ezért ez a tartalék módszer Cloudflare mögött mindig sikertelen, és egy egyszeri hibából így lesz „hetek óta nem újul a tanúsítvány”.

1. Nézze meg az AutoSSL hibaüzenetét

A cPanel Biztonság csoportjában nyissa meg az SSL/TLS Certificates felületet, és kattintson az Állapot fülre. A sárga vagy piros jelzésű domaineknél a hibaüzenet megmondja, mi akadályozta a kiadást.

SSL/TLS Certificates, Állapot fül: AutoSSL tanúsítványok és a Run AutoSSL gomb

Ha a hibaüzenet szerint a domain nem a mi szerverünkre mutat, vagy egyéb, nem Cloudflare-rel kapcsolatos ok áll fenn, az AutoSSL hibáiról szóló cikk segít.

2. Derítse ki, a Cloudflare vagy a tárhely utasítja-e el

Tegyen egy próbafájlt az ellenőrzés útvonalára. A cPanel Terminal felületén (vagy a Fájlkezelőben a domain dokumentumgyökerében létrehozva a .well-known/acme-challenge mappát):

mkdir -p ~/public_html/.well-known/acme-challenge
echo proba > ~/public_html/.well-known/acme-challenge/proba.txt

Ezután kérje le a saját gépéről, egyszer a Cloudflare-en át, egyszer közvetlenül a tárhelyről (a 203.0.113.10 helyére a tárhelye IP-címét írja; a cPanel kezdőlapján a General Information dobozban, a Shared IP Address sorban látja):

curl -si http://pelda.hu/.well-known/acme-challenge/proba.txt | head -12
curl -si --resolve pelda.hu:80:203.0.113.10 http://pelda.hu/.well-known/acme-challenge/proba.txt | head -12
  • Ha a közvetlen kérés a proba szöveget adja, a Cloudflare-en átmenő pedig 403-at, egy kihívásoldalt, vagy a válasz fejlécében cf-mitigated: challenge áll, a Cloudflare a blokkoló.
  • Ha a közvetlen kérés sem adja vissza a fájlt, a tárhelyen van a hiba, többnyire a .htaccess egy átirányítása vagy tiltása. Erről az AutoSSL-hibák cikk ír.

Ha végzett, törölje a próbafájlt: rm ~/public_html/.well-known/acme-challenge/proba.txt.

3. A javítás a Cloudflare-ben

Kivétel a tűzfalban az ellenőrzés útvonalára. A Cloudflare-ben a Security › WAF › Custom rules oldalon hozzon létre egy szabályt: a feltétel URI Path starts with /.well-known/acme-challenge/, a művelet Skip, és jelölje ki azokat a védelmeket, amelyek a kérést blokkolták (például a többi egyedi szabály és a kezelt szabályok). A szabály kerüljön a lista elejére. Ez a tartós megoldás, és minden Cloudflare-csomagban működik.

Bot Fight Mode. Az ingyenes csomag Bot Fight Mode kapcsolójához nem lehet kivételt megadni, és ismert, hogy az ellenőrző kéréseket is blokkolhatja. Ha a kivétel nem segít, kapcsolja ki. A fizetős csomagok botvédelme (Super Bot Fight Mode) a hitelesített robotokra szabható.

Átirányítási és átalakító szabályok. Ha egy szabály a /.well-known/ alatti kéréseket átirányítja vagy átírja (például egy „minden kérés a www-re” szabály egy másik szerverre), az ellenőrző fájl nem érkezik meg. Zárja ki ezt az útvonalat a szabályból. Egy egyszerű HTTP-ről HTTPS-re átirányítás nem zavar.

„I’m Under Attack” mód. Amíg be van kapcsolva, minden látogató, így a tanúsítványkiadó is egy ellenőrző oldalt kap. Kapcsolja ki, vagy a fenti kivételt alkalmazza.

A Cloudflare nem éri el a tárhelyet. Ha a webhely maga is 522-es vagy 523-as hibát ad, az ellenőrzés emiatt hiúsul meg; előbb ezt kell rendbe tenni.

A javítás után az Állapot fülön kattintson a Run AutoSSL gombra, és várja meg, amíg a domain zöld jelzést kap.

Ideiglenes kerülőút: szürke felhő

A Cloudflare DNS oldalán a domain rekordját átállíthatja DNS only (szürke felhő) módra, futtathatja az AutoSSL-t, majd visszakapcsolhatja a proxyt. Ez működik, de kézi munka, a proxy nélküli idő alatt a tárhely IP-címe nyilvánosan látszik, és a következő megújításnál ugyanez a hiba jön elő. Arra jó, hogy kiderüljön, a Cloudflare-e a ludas; állandó megoldásnak nem.

Wildcard tanúsítvány és teljesen lezárt zóna

A wildcard tanúsítványt (*.pelda.hu) csak DNS-ellenőrzéssel lehet kiadni, és ahogy fent láttuk, az AutoSSL nem tud rekordot írni a Cloudflare-be. Ha wildcard tanúsítvány kell, vagy a zóna annyira le van zárva, hogy a fájlos ellenőrzés nem engedhető át, két út marad:

  • Cloudflare Origin CA tanúsítvány, amelyet a tárhelyre telepít. Akár 15 évig érvényes, és nincs vele ellenőrzési kör, de csak a Cloudflare fogadja el: ha a proxyt kikapcsolja, a böngészők hibát jeleznek. Erről az SSL Cloudflare mögött cikk ír.
  • DNS-ellenőrzés a Cloudflare API-n át, egy olyan ACME-klienssel, amely a TXT rekordot a Cloudflare-be írja. Ez VPS-en vagy saját szerveren szokásos (wildcard Let’s Encrypt DNS-ellenőrzéssel).

Infografika: a Cloudflare Flexible, Full és Full (strict) módja, a két kapcsolati szakasz titkosításával

Amit ne tegyen

  • Ne állítsa a Cloudflare SSL/TLS módját Flexible-re, hogy „működjön az SSL”. Ez átirányítási hurkot okozhat, és a Cloudflare és a tárhely között titkosítatlanul utaznak az adatok. A helyes mód a Full (strict).
  • Ne kapcsolja ki a teljes tűzfalat, elég egyetlen útvonalra kivételt tenni.
  • Ne zárja ki a domaint az AutoSSL-ből azért, hogy a figyelmeztető e-mailek megszűnjenek: a tanúsítvány attól még lejár.
  • Ne hagyja a próbafájlokat a public_html mappában.

Megelőzés

Ha több domaint is Cloudflare mögött tart, tegye a /.well-known/acme-challenge/ kivételt minden zóna alapbeállításai közé. Ellenőrizze negyedévente az Állapot fület, vagy figyelje a tanúsítványok lejárati idejét (hogyan ellenőrizze a lejáratot), hogy egy hiba e-mailként, ne lejárt tanúsítványként derüljön ki. Ha elakad, írjon ügyfélszolgálatunknak.

Vissza: SSL leírások (35)