 Autor: [Piotr Wasilewski](/autorzy/piotr-wasilewski) Architekt rozwiązań chmurowych · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  Let's Encrypt wildcard — certbot DNS challenge

# Let's Encrypt wildcard — certyfikat \*.domena.pl przez Certbot

Opublikowano: 9 kwietnia 2026 · Kategoria: SSL / Bezpieczeństwo

Zarządzasz wieloma subdomenami (blog.domena.pl, api.domena.pl, staging.domena.pl)? Zamiast wystawiać osobny certyfikat dla każdej, użyj certyfikatu wildcard `*.domena.pl` — jeden plik obejmuje wszystkie subdomeny. Let's Encrypt udostępnia wildcard SSL za darmo, ale wymaga weryfikacji przez DNS challenge (nie HTTP). Oto jak to zrobić metodą manualną i w pełni automatyczną przez Cloudflare.

## Dlaczego wildcard? Kiedy warto?

-   **Wiele subdomen** — staging, dev, api, blog, shop — każda pokryta jednym certyfikatem.
-   **Dynamiczne subdomeny** — np. SaaS gdzie każdy klient dostaje subdomenę (klient.twoja-app.pl).
-   **Prostsze zarządzanie** — jedno odnawianie, jeden plik, jeden post-hook.
-   **Ograniczenia Let's Encrypt** — 50 certyfikatów na domenę tygodniowo; wildcard to 1 certyfikat dla nieskończonej liczby subdomen.

**Uwaga:** certyfikat `*.domena.pl` NIE obejmuje samej domeny głównej `domena.pl`. Dlatego zawsze wnioskuj o oba jednocześnie.

## Metoda 1: Manual DNS Challenge (bez automatyzacji)

Najprościej — bez dodatkowych wtyczek, ale wymaga ręcznego dodania rekordu TXT przy każdym odnawianiu:

\# Instalacja Certbot
sudo apt update
sudo apt install certbot

# Wnioskowanie o certyfikat wildcard — manual DNS challenge
sudo certbot certonly \\
  --manual \\
  --preferred-challenges dns \\
  -d "\*.domena.pl" \\
  -d "domena.pl"

Certbot wyświetli komunikat z wartością rekordu TXT do dodania, np.:

Please deploy a DNS TXT record under the name:

\_acme-challenge.domena.pl

with the following value:

xYzAbC123\_losowy\_token\_weryfikacyjny

Press Enter to Continue

Dodaj rekord TXT w panelu DNS swojego dostawcy, odczekaj kilka minut na propagację (sprawdź: `dig TXT _acme-challenge.domena.pl`), a następnie naciśnij Enter w terminalu.

## Metoda 2: Cloudflare DNS Plugin (w pełni automatyczna)

Najlepsza opcja gdy DNS zarządzany jest przez Cloudflare — Certbot automatycznie dodaje i usuwa rekord TXT przez API. Odnawianie jest w 100% bezobsługowe:

\# Krok 1: Instalacja Certbot i pluginu Cloudflare
sudo apt install certbot python3-certbot-dns-cloudflare

# Lub przez pip (jeśli Certbot zainstalowany przez snap)
sudo snap install certbot --classic
sudo snap set certbot trust-plugin-with-root=ok
sudo snap install certbot-dns-cloudflare

\# Krok 2: Utwórz token API Cloudflare
# Cloudflare Dashboard > My Profile > API Tokens > Create Token
# Uprawnienie: Zone:DNS:Edit (tylko dla Twojej strefy DNS)

# Krok 3: Utwórz plik z tokenem API
sudo mkdir -p /etc/letsencrypt
sudo nano /etc/letsencrypt/cloudflare.ini

\# Zawartość /etc/letsencrypt/cloudflare.ini
# Opcja 1: API Token (rekomendowana — ograniczone uprawnienia)
dns\_cloudflare\_api\_token = twoj\_api\_token\_cloudflare

# Opcja 2: Global API Key (starsza metoda — szerokie uprawnienia)
# dns\_cloudflare\_email = twoj@email.com
# dns\_cloudflare\_api\_key = twoj\_global\_api\_key

\# Zabezpiecz plik (tylko root może czytać)
sudo chmod 600 /etc/letsencrypt/cloudflare.ini

# Krok 4: Wnioskowanie o certyfikat wildcard
sudo certbot certonly \\
  --dns-cloudflare \\
  --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \\
  --dns-cloudflare-propagation-seconds 60 \\
  -d "\*.domena.pl" \\
  -d "domena.pl" \\
  --email twoj@email.com \\
  --agree-tos \\
  --no-eff-email

Parametr `--dns-cloudflare-propagation-seconds 60` każe Certbotowi poczekać 60 sekund na propagację DNS przed weryfikacją. Zwiększ do 120 jeśli masz problemy z weryfikacją.

## Weryfikacja certyfikatu

\# Sprawdź lokalizację certyfikatów
sudo certbot certificates

# Szczegóły certyfikatu (SAN, data ważności)
sudo openssl x509 -text -noout \\
  -in /etc/letsencrypt/live/domena.pl/fullchain.pem \\
  | grep -A 5 "Subject Alternative Name"

# Oczekiwany output:
# X509v3 Subject Alternative Name:
#   DNS:\*.domena.pl, DNS:domena.pl

# Sprawdź datę ważności
sudo openssl x509 -enddate -noout \\
  -in /etc/letsencrypt/live/domena.pl/fullchain.pem

## Konfiguracja Nginx z certyfikatem wildcard

\# /etc/nginx/sites-available/wildcard.conf

# Subdomena blog
server {
    listen 443 ssl http2;
    listen \[::\]:443 ssl http2;
    server\_name blog.domena.pl;

    ssl\_certificate /etc/letsencrypt/live/domena.pl/fullchain.pem;
    ssl\_certificate\_key /etc/letsencrypt/live/domena.pl/privkey.pem;

    root /var/www/blog;
    index index.html;
}

# Subdomena api
server {
    listen 443 ssl http2;
    listen \[::\]:443 ssl http2;
    server\_name api.domena.pl;

    ssl\_certificate /etc/letsencrypt/live/domena.pl/fullchain.pem;
    ssl\_certificate\_key /etc/letsencrypt/live/domena.pl/privkey.pem;

    location / {
        proxy\_pass http://localhost:3000;
    }
}

## Automatyczne odnawianie z post-hook dla Nginx

Certbot (snap) automatycznie instaluje systemd timer który sprawdza certyfikaty dwa razy dziennie. Dodaj post-hook który przeładuje Nginx po odnowieniu:

\# Utwórz deploy hook
sudo nano /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh

#!/bin/bash
# /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh
# Wykonywany automatycznie po każdym udanym odnowieniu certyfikatu

systemctl reload nginx
echo "Nginx przeladowany po odnowieniu certyfikatu $(date)"

sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh

# Sprawdź timer systemd
systemctl status snap.certbot.renew.timer

# Przetestuj odnawianie (dry-run)
sudo certbot renew --dry-run

## Najczęstsze pytania

Czym różni się certyfikat wildcard od zwykłego certyfikatu SSL? +

Zwykły certyfikat SSL zabezpiecza jedną konkretną domenę (np. domena.pl i ew. www.domena.pl jako SAN). Certyfikat wildcard (\*.domena.pl) zabezpiecza wszystkie subdomeny jednego poziomu: blog.domena.pl, sklep.domena.pl, api.domena.pl — nieograniczoną liczbę. NIE obejmuje jednak subdomeny drugiego poziomu (\*.\*.domena.pl) ani samej domeny głównej (domena.pl) — dlatego w Certbot zawsze wnioskuj o oba: \*.domena.pl i domena.pl jednocześnie.

Dlaczego wildcard wymaga DNS challenge zamiast HTTP challenge? +

Let's Encrypt musi zweryfikować że kontrolujesz domenę. Dla certyfikatów wildcard HTTP challenge jest niemożliwy — nie istnieje jeden URL który obejmowałby wszystkie subdomeny. DNS challenge wymaga dodania rekordu TXT (\_acme-challenge.domena.pl) do strefy DNS — to dowód kontroli nad domeną, niezależnie od tego ile subdomen istnieje.

Jak często Certbot odnawia certyfikaty Let's Encrypt? +

Certyfikaty Let's Encrypt są ważne 90 dni. Certbot (gdy zainstalowany przez snap lub systemd timer) automatycznie sprawdza certyfikaty dwa razy dziennie i odnawia te, którym zostało mniej niż 30 dni ważności. Przy certyfikatach wildcard z Cloudflare DNS plugin odnawianie jest w pełni automatyczne — Certbot automatycznie dodaje i usuwa rekord TXT przez API Cloudflare.

Czy mogę użyć certyfikatu wildcard na wielu serwerach? +

Tak. Możesz skopiować pliki certyfikatu (fullchain.pem i privkey.pem) z /etc/letsencrypt/live/domena.pl/ na inne serwery. Pamiętaj jednak o synchronizowaniu odnowień — gdy Certbot odnowi certyfikat na głównym serwerze, musisz zaktualizować kopię na pozostałych (np. przez rsync + post-renewal hook). Alternatywą jest użycie certbot certonly na każdym serwerze z tym samym kontem Cloudflare.

## Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.

LH.pl

Hosting z darmowymi certyfikatami SSL — bez potrzeby ręcznej konfiguracji Certbot

SSL gratis

[Aktywuj rabat →](/out/lh-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/lh-pl)

Contabo

VPS z pełną kontrolą — idealny do konfiguracji wildcard SSL przez Certbot

Full root

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo)

CyberFolks

Hosting z automatycznym SSL dla subdomeny — zero konfiguracji certbot

Auto SSL

[Aktywuj rabat →](/out/cyberfolks)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/cyberfolks)

## Powiązane strony

-   [Nginx VirtualHost — konfiguracja SSL](/baza-wiedzy/nginx-vhost-konfiguracja)
-   [Let's Encrypt — automatyzacja zwykłego SSL](/baza-wiedzy/ssl-lets-encrypt-automatyzacja)
-   [Cloudflare — konfiguracja DNS i proxy](/baza-wiedzy/cloudflare-konfiguracja-z-hostingiem)
-   [Wszystkie artykuły](/baza-wiedzy/)