Prilagođena domena zapela na SSL validaciji
Prilagođena domena koja je zapela na validaciji obično ne prolazi zbog jedne od četiri stvari: vrste zapisa, proxya ispred challengea, propagacije koju ne možete vidjeti ili CAA zapisa. Provjerite ih ovim redoslijedom.
Dodali ste zapis. dig ga prikazuje. Platforma i dalje kaže da je status na čekanju, i tako već sat vremena. Situacija u kojoj je prilagođena domena zapela na validaciji posebno frustrira zato što izgleda kao da sve provjere koje možete sami pokrenuti prolaze.
Postoje četiri uzroka, svi su mehaničke prirode, a redoslijed u nastavku omogućuje da ih najbrže pronađete.
Prvo: što validacija zapravo radi
Prije nego što certificate authority izda certifikat, mora utvrditi da upravljate tom domenom. Postoje dva uobičajena načina, a način koji vaša platforma koristi određuje što može poći po zlu:
- HTTP-01 — CA šalje zahtjev na
http://your-domain/.well-known/acme-challenge/<token>i očekuje određeni string. To zahtijeva da plain HTTP zahtjevi prema vašoj domeni stignu do platforme. - DNS-01 — CA traži TXT zapis. To zahtijeva da zapis postoji i da je vidljiv resolveru CA-a, koji nije nužno isti resolver koji ste vi upotrijebili.
Gotovo svaka validacija koja zapne ima nešto između CA-a i jedne od te dvije stvari.
Uzrok 1: proxy ispred challengea
Ovo je najčešći uzrok kada se domena nalazi iza CDN-a, a zbunjujuće je zato što je proxy obično upravo ono što ste željeli koristiti.
Ako je vaš DNS zapis proxiran, umjesto da izravno pokazuje na platformu, HTTP-01 zahtjev CA-a završava na proxyju. Proxy poslužuje vlastiti certifikat, primjenjuje vlastita pravila i može vratiti redirect, challenge stranicu ili 404 — ništa od toga ne sadrži token koji CA očekuje.
Rješenje je propustiti challenge:
- Isključite proxy (postavite grey-cloud za zapis) dok se certifikat ne izda, a zatim ga ponovno uključite.
- Ili izuzmite
/.well-known/acme-challenge/*iz svih pravila za redirect ili pristup.
Problem je u tome što zaštite poput "Always Use HTTPS" i "Under Attack" prekidaju HTTP-01, iako iz perspektive vašeg browsera stranica radi savršeno.
Uzrok 2: pogrešna vrsta zapisa
Za većinu preostalih slučajeva odgovorne su dvije pogreške:
A zapis koji pokazuje na adresu koja se mijenja. Ako vam je platforma dala hostname, upotrijebite CNAME. Kopiranje trenutačne IP adrese u A zapis funkcionira sve dok se adresa ne promijeni.
CNAME na apexu zone. example.com prema pravilima DNS-a ne može istodobno sadržavati CNAME te svoje SOA i NS zapise. Neki provideri nude ALIAS, ANAME ili "CNAME flattening" kao zaobilazno rješenje, a neki ne. Ako vaš provider to ne podržava, upotrijebite poddomenu — app.example.com — i preusmjerite apex.
# What the world actually sees, not what your dashboard shows
dig +short app.example.com CNAME
dig +short app.example.com A
Ako su oba rezultata prazna, ništa drugo s ovog popisa još nije važno.
Uzrok 3: propagacija koju ne mjerite
dig bez argumenata upućuje upit vašem resolveru, koji je možda cachirao odgovor koji ste upravo stvorili — ili, još gore, cachirao NXDOMAIN od prije nego što ste ga stvorili. Negativni cache zapis s dugim TTL-om vrlo je čest razlog zbog kojeg validacija ne uspijeva sat vremena, a zatim prođe bez ikakve intervencije.
Pošaljite upit izravno authoritative serverima i javnom resolveru kako biste vidjeli ono što će CA vjerojatno vidjeti:
# Ask the zone's own nameservers
dig +short app.example.com @$(dig +short NS example.com | head -1)
# Ask a resolver outside your network
dig +short app.example.com @1.1.1.1
dig +short app.example.com @8.8.8.8
Ako je authoritative odgovor ispravan, a javni resolveri daju pogrešan odgovor, čekate da istekne TTL i nema ničega što treba popraviti.
Uzrok 4: CAA odbija izdavatelja
Ovaj je uzrok rijedak, ne vidi se u uobičajenim DNS provjerama i potpuno je tih kada se pojavi.
CAA zapis na vašoj domeni navodi koji certificate authorities smiju izdavati certifikate za nju. Ako imate takav zapis — često naslijeđen iz starog postavljanja ili dodan na temelju preporuke sigurnosnog skenera — a u njemu nije naveden CA koji koristi vaša platforma, izdavanje neće uspjeti. Jedino mjesto na kojem se to vidi jesu logovi CA-a, kojima nemate pristup.
dig +short example.com CAA
dig +short app.example.com CAA
Prazan rezultat znači da nema ograničenja, što je u redu. Ako dobijete zapise, dodajte CA koji koristi vaša platforma ili uklonite ograničenje.
Redoslijed kojim ćete najbrže pronaći uzrok
- Pokrenite
digza zapis putem javnog resolvera. Ako nema odgovora, zapis je pogrešan ili još nije propagirao — ovdje stanite. - Provjerite je li zapis proxiran. Ako jest, isključite proxy ili izuzmite ACME putanju.
- Provjerite CAA na apexu i poddomeni.
- Tek tada razmotrite mogućnost da je problem u platformi.
Devedeset posto validacija koje zapnu završi na prvom ili drugom koraku.
Kako ovo funkcionira na Dockupu
Dvije odluke u dizajnu uklanjaju većinu nedoumica.
DNS zapis stvara se automatski. Ako je vaša zona na Cloudflareu i povezali ste račun, dodavanje domene samo stvara zapis umjesto da od vas traži ručno kopiranje vrijednosti:
dockup domain add app.example.com my-project/my-api --port 3000 --cloudflare
Time se uklanja cijela skupina pogrešaka s tipkanjem i vrstom zapisa — platforma zna treba li CNAME ili A zapis i stvara odgovarajući zapis.
Dodjela pristupa temelji se na dvjema dozvolama. Zone:Read i DNS:Edit, i ništa više. Dockup ne može čitati vaše druge zone, mijenjati postavke računa ni dirati bilo što za što nije dobio ovlasti. Povezivanje DNS automatizacije ne bi trebalo zahtijevati predaju cijelog računa.
Status verifikacije i certifikata vidljiv je za svaku domenu zasebno, a ne kao jedan objedinjeni status, pa poruka "DNS verificiran, ali TLS na čekanju" jasno pokazuje stvarno stanje — riječ je o dva odvojena koraka, od kojih je jedan dovršen.
Često postavljana pitanja
Koliko bi trebalo trajati izdavanje certifikata? Obično manje od minute nakon što se DNS ispravno razrješava. Ako je status na čekanju dulje od otprilike petnaest minuta, nešto ga blokira, a nije samo riječ o sporosti.
Zašto moja domena radi u browseru, ali validacija ne uspijeva? Zato što vaš browser prati redirectove i koristi HTTPS, a challenge ne radi ni jedno ni drugo. Proxy koji savršeno poslužuje vašu stranicu i dalje može progutati plain-HTTP ACME zahtjev.
Mogu li upotrijebiti CNAME na root domeni? Ne u standardnom DNS-u. Upotrijebite značajku providera kao što su ALIAS ili CNAME flattening, ili usmjerite apex na poddomenu s redirectom.
Što je CAA zapis i treba li mi? On ograničava certificate authorities koji smiju izdavati certifikate za vašu domenu. Ne trebate ga imati, ali ako postoji i u njemu nije naveden CA vaše platforme, izdavanje će tiho neuspjeti.
