Dealownia
Menu
sprawdzono – jak sprawdzamy oferty

Cloudflare Free: konfiguracja DNS, SSL Full (strict) i cache

Przeniesienie DNS do Cloudflare, tryb SSL Full (strict), co cache'uje darmowy plan, czego w nim nie ma i jak uniknąć pętli przekierowań oraz utraty adresów IP.

Domeny i DNSzaktualizowano 6 min czytania

Redakcja serwisu Dealownia · ceny i fakty ze stron dostawców, jak sprawdzamy

Domena obsługiwana przez serwery DNS Cloudflare, ruch do strony przez ich sieć z szyfrowaniem na całej trasie (tryb Full (strict)), pliki statyczne z pamięci podręcznej, a Twój serwer nadal widzi prawdziwe adresy IP odwiedzających – wszystko na darmowym planie. Wyjaśniamy też, czego ten plan nie daje i na jakich ustawieniach najczęściej coś się psuje.

Czego potrzebujesz

  • Domenę, w której panelu u rejestratora możesz zmienić serwery nazw (nameservery). Rejestracja domeny .pl i .com jest opisana w poradniku o najtańszej domenie.
  • Działającą stronę z własnym certyfikatem TLS na serwerze, np. nginx z Let’s Encrypt jak w poradniku od zera. Tryb Full (strict) wymaga certyfikatu na serwerze.
  • Konto Cloudflare. Plan Free kosztuje 0 zł; Cloudflare opisuje go jako plan dla projektów osobistych i niekrytycznych (zestawienie darmowych planów jest na stronie darmowe).
  • Dostęp do wszystkich rekordów DNS, których używasz, w tym poczty (MX, SPF, DKIM).

Cloudflare nie jest rejestratorem dla domen .pl, więc domenę i tak kupujesz gdzie indziej. Oferty domen niżej mogą dotyczyć różnych końcówek, nie tylko .pl i .com.

Ceny pierwszego roku i odnowień porównasz w rankingu domen.

Krok 1. Dodanie domeny i przegląd rekordów

W panelu Cloudflare wybierz dodanie domeny, wpisz domenę główną (example.pl) i plan Free. Cloudflare przeskanuje istniejące rekordy DNS – instrukcja pełnej konfiguracji każe je przejrzeć przed zmianą nameserverów, bo skan nie zawsze znajduje wszystko. Porównaj listę z panelem obecnego dostawcy DNS:

bash
dig +short example.pl A
dig +short www.example.pl
dig +short example.pl MX
dig +short example.pl TXT

Przy każdym rekordzie jest przełącznik proxy (pomarańczowa chmurka). Ustaw go tak:

  • Proxied (pomarańczowa) – rekordy A/AAAA/CNAME strony WWW (example.pl, www). Ruch idzie przez Cloudflare, a na zewnątrz widać ich adresy IP.
  • DNS only (szara) – wszystko, co nie jest HTTP: rekordy pod pocztę, SSH, serwery gier. Proxy Cloudflare przepuszcza tylko określone porty HTTP i HTTPS (m.in. 80, 443, 8080, 8443); SSH na porcie 22 przez rekord z proxy nie przejdzie.

Rekordy MX i TXT nie mają proxy. Rekord A, na który wskazuje MX (np. mail.example.pl), musi być szary.

Krok 2. Zmiana nameserverów

Jeśli u rejestratora masz włączony DNSSEC, najpierw go wyłącz. Dokumentacja Cloudflare ostrzega, że zmiana nameserverów przy aktywnym DNSSEC może sprawić, że domena przestanie działać. Potem w panelu rejestratora usuń obecne nameservery i wpisz dwa, które Cloudflare pokazało na stronie przeglądu domeny – dokładnie, litera w literę.

Rejestrator może potrzebować do 24 godzin na publikację zmiany. Sprawdzisz ją tak:

bash
dig +short NS example.pl
whois example.pl | grep -i -A3 'nameservers'

Gdy domena dostanie status Active, Cloudflare wyśle e-mail. Wtedy możesz z powrotem włączyć DNSSEC – tym razem w panelu Cloudflare, który poda rekord DS do wpisania u rejestratora. Podstawy rekordów i czasu TTL są w poradniku o DNS.

Krok 3. Tryb SSL: Full (strict)

W sekcji SSL/TLS Cloudflare ma kilka trybów szyfrowania:

  • Flexible – odwiedzający łączy się z Cloudflare przez HTTPS, ale Cloudflare z Twoim serwerem już przez HTTP. Kłódka w przeglądarce jest, szyfrowania na drugim odcinku nie ma.
  • Full – Cloudflare łączy się z serwerem przez HTTPS, ale nie sprawdza certyfikatu (przyjmie też samopodpisany).
  • Full (strict) – jak Full, ale certyfikat serwera musi być ważny: z publicznego urzędu (np. Let’s Encrypt) albo z Cloudflare Origin CA.

Ustaw Full (strict). Domyślny tryb automatyczny sam wybiera najbezpieczniejszy możliwy, ale nie obniża bieżącego trybu i zmiany wprowadza stopniowo – lepiej ustawić go ręcznie i wiedzieć, co jest włączone. Sprawdź, czy serwer ma ważny certyfikat:

bash
curl -svo /dev/null --resolve example.pl:443:203.0.113.10 https://example.pl 2>&1 | grep -Ei 'subject|expire|verify'

--resolve łączy się bezpośrednio z Twoim serwerem z pominięciem Cloudflare. Certyfikat Let’s Encrypt odnawiasz dalej certbotem. Jeśli odnowienie przez port 80 zawodzi za proxy, najpewniejsza jest walidacja DNS-01 z wtyczką Cloudflare, opisana w poradniku o certbocie. Alternatywą jest certyfikat Origin CA wystawiany w panelu: działa w trybie Full (strict), ale przeglądarki mu nie ufają (szyfruje tylko odcinek Cloudflare–serwer), a Cloudflare nie przypomina o jego wygaśnięciu.

Krok 4. Prawdziwe adresy IP w logach

Za proxy każde żądanie przychodzi do serwera z adresu Cloudflare. Logi, fail2ban, limity żądań i analityka widzą wtedy kilka tych samych adresów. Dokumentacja Cloudflare każe w nginx użyć modułu ngx_http_realip_module (w pakietach Ubuntu i Debiana jest wkompilowany) i zaufać nagłówkowi CF-Connecting-IP tylko od adresów Cloudflare. Listę zakresów generujesz z opublikowanych plików:

bash
{
  echo "# Zakresy Cloudflare, wygenerowane $(date +%F)"
  for ip in $(curl -s https://www.cloudflare.com/ips-v4/) $(curl -s https://www.cloudflare.com/ips-v6/); do
    echo "set_real_ip_from $ip;"
  done
  echo "real_ip_header CF-Connecting-IP;"
} | sudo tee /etc/nginx/conf.d/cloudflare-realip.conf >/dev/null
sudo nginx -t && sudo systemctl reload nginx

Cloudflare zastrzega, że lista się zmienia i trzeba ją regularnie aktualizować – wrzuć ten skrypt do crona raz w tygodniu. Po przeładowaniu tail /var/log/nginx/access.log powinien pokazywać adresy odwiedzających, nie Cloudflare.

Przy okazji: skoro wszyscy odwiedzający przychodzą przez Cloudflare, możesz w zaporze wpuszczać porty 80 i 443 tylko z tych zakresów. Wtedy nikt nie ominie Cloudflare, łącząc się bezpośrednio z adresem serwera – pod warunkiem, że ten adres nie wycieka przez inne rekordy z szarą chmurką.

Krok 5. Cache i co daje plan Free

Według dokumentacji domyślnego cache Cloudflare nie zapisuje w pamięci podręcznej HTML ani JSON. Cache’uje pliki po rozszerzeniu: obrazy, CSS, JS, fonty, PDF, archiwa, wideo. Nie zapisuje odpowiedzi z nagłówkiem Set-Cookie ani z Cache-Control: private, no-store, no-cache lub max-age=0. Jeśli chcesz cache’ować całe strony statyczne, potrzebujesz reguły Cache Rules – w planie Free masz ich 10.

Co jeszcze jest w planie Free (według dokumentacji poszczególnych funkcji):

  • DNS, proxy z ochroną przed DDoS, certyfikat Universal SSL na domenę główną i subdomeny pierwszego poziomu (www.example.pl tak, dev.www.example.pl nie);
  • 5 własnych reguł zapory WAF i zestaw reguł Cloudflare Free Managed Ruleset;
  • maksymalny rozmiar pliku w cache 512 MB i limit wysyłanego żądania 100 MB.

Czego w planie Free nie ma: pełnego zestawu reguł zarządzanych Cloudflare Managed Ruleset i OWASP (od planu Pro), certyfikatów dla subdomen drugiego poziomu (płatny Advanced Certificate Manager), przepuszczania przez proxy dowolnych portów TCP (Spectrum). Aktualne ceny planów płatnych sprawdzaj na stronie Cloudflare.

Najczęstsze problemy

  • ERR_TOO_MANY_REDIRECTS zaraz po włączeniu proxy. Tryb Flexible plus przekierowanie HTTP→HTTPS na serwerze: Cloudflare pyta serwer po HTTP, serwer odsyła na HTTPS, Cloudflare znów pyta po HTTP. Rozwiązanie z dokumentacji: przełącz na Full albo Full (strict) z certyfikatem na serwerze.
  • Błąd 526 (Invalid SSL certificate). Tryb Full (strict), a certyfikat na serwerze wygasł, jest samopodpisany albo nie obejmuje nazwy domeny. Sprawdź komendą z kroku 3 i odnów certyfikat.
  • Poczta przestała dochodzić. Rekord A serwera poczty ma pomarańczową chmurkę albo skan nie przeniósł któregoś rekordu MX, SPF lub DKIM. Porównaj rekordy ze stanem sprzed zmiany i ustaw rekord poczty na DNS only.
  • Wszystkie wizyty w logach z kilku adresów. Brak konfiguracji real IP z kroku 4 albo nieaktualna lista zakresów. fail2ban zablokuje wtedy Cloudflare zamiast atakującego.
  • Po zmianach na stronie odwiedzający widzą starą wersję CSS lub JS. Pliki siedzą w cache Cloudflare. Wyczyść cache w panelu (Purge Cache) albo dodawaj do nazw plików skrót zawartości – robią to generatory stron statycznych.

Co dalej

Jeśli Twoja strona jest w pełni statyczna, możesz ją w ogóle zdjąć z VPS – porównujemy darmowy hosting statyczny w Cloudflare Pages, GitHub Pages i Netlify. Gdy zostajesz przy własnym serwerze, przejdź listę kontrolną zabezpieczeń.

Powiązane poradniki