 Autor: [Tomasz Nowosielski](/autorzy/tomasz-nowosielski) Redaktor naczelny, analityk hostingu · Zweryfikowano Kwiecień 2026

1.  [HostGrade.pl](/)
2.  [Baza wiedzy](/baza-wiedzy)
3.  Let's Encrypt Wildcard certyfikaty

# Let's Encrypt Wildcard certyfikaty — certbot i DNS challenge

Kategoria: [SSL / Bezpieczeństwo](/baza-wiedzy) · Aktualizacja: Kwiecień 2026

## Wildcard vs standardowy certyfikat SSL

Standardowy certyfikat SSL (DV) z Let's Encrypt obejmuje **jedną domenę** lub kilka jawnie wymienionych (SAN). Certyfikat **wildcard** (`*.domena.pl`) obejmuje _wszystkie subdomeny pierwszego poziomu_: `www.domena.pl`, `sklep.domena.pl`, `api.domena.pl` itd. — w ramach jednego certyfikatu.

Typ

Obejmuje

Weryfikacja

Cena

DV (standardowy)

Jedna domena + www

HTTP-01 lub DNS-01

Darmowy (Let's Encrypt)

Wildcard \*.domena.pl

Wszystkie subdomeny

TYLKO DNS-01

Darmowy (Let's Encrypt)

OV / EV

Wybrane domeny

Weryfikacja organizacji

Płatny (CA komercyjne)

Powiązane tematy: [automatyzacja Let's Encrypt](/baza-wiedzy/ssl-lets-encrypt-automatyzacja), [konfiguracja Nginx vhost](/baza-wiedzy/nginx-vhost-konfiguracja), [Cloudflare z hostingiem](/baza-wiedzy/cloudflare-konfiguracja-z-hostingiem) oraz [SPF/DKIM/DMARC konfiguracja](/baza-wiedzy/spf-dkim-dmarc-konfiguracja). Do wyboru hostingu z darmowym SSL sprawdź [kalkulator kosztów](/kalkulator).

## Dlaczego wildcard wymaga DNS-01?

Let's Encrypt wymaga **DNS challenge** dla certyfikatów wildcard, ponieważ nie można zweryfikować własności `*.domena.pl` przez żądanie HTTP (nie wiadomo które subdomeny istnieją). DNS-01 polega na dodaniu rekordu TXT `_acme-challenge.domena.pl` do DNS — dowód kontroli nad całą domeną.

## Instalacja Certbot

```
# Ubuntu/Debian
sudo apt update
sudo apt install certbot

# Lub przez snap (najnowsza wersja)
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
```

Dla DNS-01 potrzebujesz wtyczki DNS odpowiedniej do twojego dostawcy DNS:

```
# Cloudflare
sudo apt install python3-certbot-dns-cloudflare
# lub: pip3 install certbot-dns-cloudflare

# DigitalOcean
pip3 install certbot-dns-digitalocean

# Route53 (AWS)
pip3 install certbot-dns-route53

# Inne (OVH, Hetzner, Gandi) — szukaj certbot-dns-PROVIDER
# Pełna lista: https://certbot.eff.org/docs/using.html#dns-plugins
```

## Wildcard z Cloudflare DNS — krok po kroku

### 1\. Konfiguracja API token Cloudflare

```
# Stwórz plik z tokenem
sudo mkdir -p /etc/letsencrypt/credentials
sudo nano /etc/letsencrypt/credentials/cloudflare.ini
```

```
# cloudflare.ini
dns_cloudflare_api_token = TWOJ_CLOUDFLARE_API_TOKEN
```

```
sudo chmod 600 /etc/letsencrypt/credentials/cloudflare.ini
```

Token Cloudflare: Dashboard → My Profile → API Tokens → Create Token → Template "Edit zone DNS" → ogranicz do swojej domeny.

### 2\. Wydanie certyfikatu wildcard

```
sudo certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials /etc/letsencrypt/credentials/cloudflare.ini \
  -d "domena.pl" \
  -d "*.domena.pl"
```

Certbot automatycznie doda rekord TXT `_acme-challenge.domena.pl` do DNS Cloudflare, poczeka na propagację (domyślnie 10 sekund), zweryfikuje i wyda certyfikat.

## Wildcard bez wtyczki DNS — ręczny DNS challenge

Jeśli twój dostawca DNS nie ma wtyczki Certbot, użyj trybu `--manual`:

```
sudo certbot certonly \
  --manual \
  --preferred-challenges dns \
  -d "domena.pl" \
  -d "*.domena.pl"
```

Certbot wyświetli instrukcję — ręcznie dodasz rekord TXT w panelu DNS:

```
Please deploy a DNS TXT record under the name:
_acme-challenge.domena.pl

with the following value:
AbCdEfGhIjKlMnOpQrStUvWxYz1234567890abc

Press Enter to Continue
```

**Uwaga:** Tryb manual nie obsługuje automatycznego odnawiania — musisz powtarzać ten proces co 90 dni. Użyj wtyczki DNS jeśli możliwe.

## Konfiguracja Nginx z certyfikatem wildcard

```
server {
    listen 443 ssl http2;
    server_name domena.pl www.domena.pl sklep.domena.pl api.domena.pl;

    ssl_certificate /etc/letsencrypt/live/domena.pl/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domena.pl/privkey.pem;

    # Nowoczesne ustawienia SSL
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;

    include /etc/letsencrypt/options-ssl-nginx.conf;
}
```

## Automatyczne odnawianie

```
# Sprawdź czy timer systemd działa
sudo systemctl status certbot.timer

# Lub cron (starsze systemy)
sudo crontab -l
# 0 12 * * * /usr/bin/certbot renew --quiet

# Test odnawiania (dry run — nie pobiera nowego certyfikatu)
sudo certbot renew --dry-run

# Wymuś odnawianie (jeśli <30 dni do wygaśnięcia)
sudo certbot renew --force-renewal
```

Let's Encrypt certyfikaty ważne są **90 dni**. Certbot automatycznie odnawia gdy zostaje mniej niż 30 dni. Dla wildcard z Cloudflare — odnowienie w pełni automatyczne (nowy TXT rekord jest dodawany przez API).

## Certyfikat multi-domain (SAN)

Alternatywa dla wildcard — certyfikat pokrywający kilka konkretnych domen:

```
sudo certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials /etc/letsencrypt/credentials/cloudflare.ini \
  -d "domena.pl" \
  -d "www.domena.pl" \
  -d "sklep.domena.pl" \
  -d "api.domena.pl" \
  -d "innादomain.pl"
```

Limit Let's Encrypt: maksymalnie **100 domen** w jednym certyfikacie SAN i **50 certyfikatów tygodniowo** per rejestrowana domena.

## Lokalizacja plików certyfikatu

```
/etc/letsencrypt/live/domena.pl/
├── cert.pem       # certyfikat końcowy
├── chain.pem      # łańcuch pośredni CA
├── fullchain.pem  # cert.pem + chain.pem (używaj tego w Nginx/Apache)
└── privkey.pem    # klucz prywatny (chmod 600, tylko root)
```

```
# Sprawdź datę wygaśnięcia
sudo certbot certificates

# Lub bezpośrednio
openssl x509 -enddate -noout -in /etc/letsencrypt/live/domena.pl/fullchain.pem
```

## Powiązane strony

-   [Let's Encrypt — automatyzacja](/baza-wiedzy/ssl-lets-encrypt-automatyzacja)
-   [Nginx vhost — konfiguracja](/baza-wiedzy/nginx-vhost-konfiguracja)
-   [Cloudflare z hostingiem](/baza-wiedzy/cloudflare-konfiguracja-z-hostingiem)
-   [SPF/DKIM/DMARC — konfiguracja](/baza-wiedzy/spf-dkim-dmarc-konfiguracja)
-   [Hostingi z darmowym SSL — porównanie](/hosting)