Na našem gostovanju cPanel AutoSSL za vsako domeno pridobi in podaljšuje brezplačno potrdilo Let’s Encrypt. Za pridobitev izdajatelj potrdil od zunaj zahteva preverjalno datoteko s poti /.well-known/acme-challenge/ domene. Če je domena za proxyjem Cloudflare (oranžni oblak), gre tudi ta zahteva prek Cloudflare in v coni Cloudflare z osnovnimi nastavitvami brez težav pride do gostovanja. Tudi preusmeritev na HTTPS je ne moti.
Če se vseeno zatakne, zahtevo skoraj vedno pogoltne ali spremeni funkcija Cloudflare: izziv (challenge) pravila požarnega zidu, Bot Fight Mode, način „I’m Under Attack”, pravilo preusmeritve ali to, da Cloudflare gostovanja sploh ne doseže. Rešitev je, da pot preverjanja v Cloudflare narediš nedotakljivo, ne pa, da se boriš z AutoSSL.
Zakaj preverjanje prek DNS ne pomaga?
Če preverjanje z datoteko ne uspe, AutoSSL poskusi s preverjanjem prek DNS: v cono DNS domene doda zapis TXT _acme-challenge. Če pa imenski strežniki domene kažejo na Cloudflare, cone cPanel nihče ne poizveduje in zapis se v Cloudflare ne prikaže. Zato je ta rezervna metoda za Cloudflare vedno neuspešna in tako iz enkratne napake nastane „potrdilo se že tedne ne podaljša”.
1. Poglej sporočilo o napaki AutoSSL
V skupini Varnost v cPanelu odpri vmesnik SSL/TLS Certificates in klikni zavihek Stanje. Pri domenah z rumeno ali rdečo oznako sporočilo o napaki pove, kaj je preprečilo izdajo.
Če po sporočilu o napaki domena ne kaže na naš strežnik ali je vzrok drug, ne povezan s Cloudflare, ti pomaga članek o napakah AutoSSL.
2. Ugotovi, ali zahtevo zavrne Cloudflare ali gostovanje
Na pot preverjanja postavi testno datoteko. V vmesniku Terminal v cPanelu (ali v Upravitelju datotek tako, da v korenskem imeniku dokumentov domene ustvariš mapo .well-known/acme-challenge):
mkdir -p ~/public_html/.well-known/acme-challenge
echo proba > ~/public_html/.well-known/acme-challenge/proba.txt
Nato jo zahtevaj s svojega računalnika, enkrat prek Cloudflare, enkrat neposredno z gostovanja (namesto 203.0.113.10 vpiši naslov IP svojega gostovanja; vidiš ga na začetni strani cPanela, v polju General Information, v vrstici Shared IP Address):
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
- Če neposredna zahteva vrne besedilo
proba, zahteva prek Cloudflare pa403, stran z izzivom ali je v glavi odgovoracf-mitigated: challenge, blokira Cloudflare. - Če tudi neposredna zahteva ne vrne datoteke, je napaka na gostovanju, večinoma preusmeritev ali prepoved v
.htaccess. O tem piše članek o napakah AutoSSL.
Ko končaš, testno datoteko izbriši: rm ~/public_html/.well-known/acme-challenge/proba.txt.
3. Popravek v Cloudflare
Izjema v požarnem zidu za pot preverjanja. V Cloudflare na strani Security › WAF › Custom rules ustvari pravilo: pogoj URI Path starts with /.well-known/acme-challenge/, dejanje Skip, in označi zaščite, ki so zahtevo blokirale (na primer druga lastna pravila in upravljana pravila). Pravilo naj bo na začetku seznama. To je trajna rešitev in deluje v vseh paketih Cloudflare.
Bot Fight Mode. Za stikalo Bot Fight Mode brezplačnega paketa izjeme ni mogoče določiti, znano pa je, da lahko blokira tudi preverjalne zahteve. Če izjema ne pomaga, ga izklopi. Zaščito pred roboti plačljivih paketov (Super Bot Fight Mode) je mogoče prilagoditi za preverjene robote.
Pravila preusmeritve in preoblikovanja. Če pravilo zahteve pod /.well-known/ preusmeri ali prepiše (na primer pravilo „vse zahteve na www” na drug strežnik), preverjalna datoteka ne pride. To pot izključi iz pravila. Preprosta preusmeritev s HTTP na HTTPS ne moti.
Način „I’m Under Attack”. Dokler je vklopljen, vsak obiskovalec, s tem pa tudi izdajatelj potrdil, dobi preverjalno stran. Izklopi ga ali uporabi zgornjo izjemo.
Cloudflare ne doseže gostovanja. Če spletno mesto samo vrača napako 522 ali 523, preverjanje spodleti zaradi tega; najprej je treba urediti to.
Po popravku na zavihku Stanje klikni gumb Run AutoSSL in počakaj, da domena dobi zeleno oznako.
Začasni obvod: sivi oblak
Na strani DNS v Cloudflare lahko zapis domene preklopiš v način DNS only (sivi oblak), zaženeš AutoSSL, nato pa proxy znova vklopiš. To deluje, a je ročno delo, v času brez proxyja je naslov IP gostovanja javno viden, ob naslednjem podaljšanju pa se ista napaka ponovi. Dobro je za ugotovitev, ali je kriv Cloudflare; kot trajna rešitev ne.
Potrdilo wildcard in popolnoma zaprta cona
Potrdilo wildcard (*.pelda.hu) je mogoče izdati le s preverjanjem prek DNS, kot smo videli zgoraj, pa AutoSSL ne more pisati zapisa v Cloudflare. Če potrebuješ potrdilo wildcard ali je cona tako zaprta, da preverjanja z datoteko ni mogoče prepustiti, ostaneta dve poti:
- Potrdilo Cloudflare Origin CA, ki ga namestiš na gostovanje. Velja lahko do 15 let in z njim ni kroga preverjanja, vendar ga sprejme le Cloudflare: če proxy izklopiš, brskalniki javijo napako. O tem piše članek SSL za Cloudflare.
- Preverjanje prek DNS z API-jem Cloudflare, z odjemalcem ACME, ki zapis TXT zapiše v Cloudflare. To je običajno na VPS ali lastnem strežniku (wildcard Let’s Encrypt s preverjanjem prek DNS).
Česa ne delaj
- Načina SSL/TLS v Cloudflare ne nastavi na Flexible, da bi „SSL delal”. To lahko povzroči zanko preusmeritev, podatki pa med Cloudflare in gostovanjem potujejo nešifrirani. Pravi način je Full (strict).
- Ne izklopi celotnega požarnega zidu, dovolj je izjema za eno pot.
- Domene ne izključi iz AutoSSL, da bi prenehala opozorilna e-sporočila: potrdilo vseeno poteče.
- Ne puščaj testnih datotek v mapi
public_html.
Preprečevanje
Če imaš za Cloudflare več domen, izjemo /.well-known/acme-challenge/ dodaj med osnovne nastavitve vsake cone. Vsako četrtletje preveri zavihek Stanje ali spremljaj datume poteka potrdil (kako preveriš potek), da se napaka pokaže kot e-sporočilo, ne kot poteklo potrdilo. Če se zatakne, piši naši podpori.

