Blog
Kierowanie własnej domeny na serwer tagowania: CNAME, certyfikat i błąd 1014 Cloudflare
Opublikowano · 3 min czytania
Pierwsza nazwa hosta, którą od nas dostajesz, to losowa etykieta pod signalhost.io. Działa i dla wielu stron wystarcza — to już nie googletagmanager.com. Ale subdomena Twojej własnej domeny to wersja, która przetrwa każdą listę filtrów i każdą regułę przeglądarki, bo dla przeglądarki to po prostu Twoja strona. Dojście do tego to jeden rekord DNS i kilka minut. Zrobienie tego odrobinę źle daje komunikat o błędzie, którego nic po Twojej stronie nie potrafi wyjaśnić, więc oto cała procedura, łącznie z awarią.
Dlaczego subdomena Twojej własnej strony
Dwa powody, i są różne. Dla blokera reklam żądanie jest zewnętrzne, jeśli jego nazwa hosta jest na liście — signalhost.io dziś na żadnej nie jest, ale jutro może być; twojastrona.pl nie będzie nigdy. Dla przeglądarki ciasteczko ustawione przez odpowiedź z metrics.twojastrona.pl jest ciasteczkiem własnym dla twojastrona.pl, z dłuższym czasem życia, jaki z tego wynika, podczas gdy ciasteczko z innej domeny jest ograniczane lub odrzucane. Serwer tagowania jest w obu przypadkach ten sam. To nazwa hosta zmienia sposób, w jaki jest traktowany.
Rekord
Jeden CNAME u Twojego dostawcy DNS, kierujący wybraną subdomenę na nasz punkt wejścia tylko-DNS:
metrics.yoursite.com. CNAME tenants.signalhost.io.Nie na Twoją losową nazwę hosta najemcy i nie na wildcard. tenants.signalhost.io to nazwa, którą publikujemy specjalnie w tym celu, a powód, dla którego musi to być właśnie ta nazwa, jest w następnej sekcji.
Jeśli Twoja własna domena jest w Cloudflare, utwórz rekord z WYŁĄCZONYM proxy — szara chmurka, „DNS only”. Rekord z proxy kierowałby żądania Twoich odwiedzających przez Twoje konto Cloudflare do nas, a krok z certyfikatem poniżej nie może się przez nie zakończyć.
Błąd 1014 Cloudflare i dlaczego cel musi być tylko-DNS
Nasze własne nazwy hostów stoją za Cloudflare. Jeśli klient skieruje swój CNAME na jedną z naszych nazw z proxy — wildcard albo nazwę hosta najemcy — jego ruch trafia do Cloudflare dla nazwy hosta należącej do innego konta Cloudflare niż nasze. Cloudflare odrzuca to błędem 1014, „CNAME Cross-User Banned”. Strona, która go pokazuje, należy do Cloudflare, nie wspomina o żadnym z nas, a nic w Twoim DNS, Twojej stronie ani przeglądarce go nie wyjaśnia.
tenants.signalhost.io celowo nie ma proxy: rozwiązuje się bezpośrednio na nasze serwery, więc CNAME na niego po prostu działa. Sprawdzenie DNS w panelu rozpoznaje po nazwie przypadek celu z proxy i mówi, co zmienić, ale szybciej jest w ogóle do tego nie dopuścić.
Certyfikat
Gdy tylko rekord się rozwiązuje, wnioskujemy o certyfikat Let's Encrypt dla Twojej nazwy hosta. Walidacja to HTTP-01: Let's Encrypt pobiera z tej nazwy konkretną ścieżkę zwykłym HTTP na porcie 80, a my na nią odpowiadamy. Zwykłym HTTP, bo certyfikatu jeszcze nie ma — to właśnie on jest uzyskiwany — i to jedyna nieszyfrowana ścieżka, na jaką nasz edge w ogóle odpowiada. To porównanie nonce; nic więcej nie jest tą drogą osiągalne.
Licz na kilka minut. Panel pokazuje trzy kroki po kolei: CNAME się rozwiązuje, certyfikat zostaje wydany, nazwa hosta serwuje. Krok zatrzymany na certyfikacie przy zielonym CNAME niemal zawsze oznacza rekord z proxy po Twojej stronie — Cloudflare odpowiada na żądanie walidacyjne własnym certyfikatem i własną stroną, a Let's Encrypt widzi nie to, co trzeba.
Gdy już serwuje
Tag Google w Twoim kontenerze internetowym zawiera adres URL kontenera serwerowego, a my przepisujemy go na domenę własną i ponownie publikujemy kontener, gdy nazwa hosta zaczyna serwować — i przepisujemy z powrotem na nazwę hosta najemcy, jeśli usuniesz domenę. Fragment kodu na Twojej stronie się nie zmienia; ładuje kontener, a kontener wie, dokąd wysyłać.
Dlatego kolejność usuwania ma znaczenie. Najpierw usuń domenę w panelu, potem usuń rekord DNS. Usuń najpierw rekord, a do czasu, aż panel to zauważy, kontener wciąż kieruje Twoich odwiedzających na nazwę, która już się nie rozwiązuje.
Jeśli nie działa
- Błąd 1014 w przeglądarce: CNAME wskazuje naszą nazwę z proxy. Zmień cel na tenants.signalhost.io.
- CNAME zielony, certyfikat w toku dłużej niż piętnaście minut: Twój rekord ma proxy. Przełącz chmurkę na szarą u dostawcy DNS.
- CNAME nigdy nie robi się zielony: poszukaj konfliktowego rekordu A lub AAAA pod tą samą nazwą — CNAME nie może z nimi współistnieć — i daj propagacji do godziny.
- Serwuje, ale strona kontenera nie pokazuje ruchu z nowej nazwy: kontener internetowy nie został jeszcze ponownie opublikowany. Dzieje się to w ciągu paru minut od uruchomienia nazwy hosta; strona kontenera pokazuje, na którą nazwę hosta tag obecnie wskazuje.
