Wildcard Let's Encrypt tanúsítvány DNS-validációval

Egy wildcard tanúsítvány (*.pelda.hu) a domain összes első szintű aldomainjét védi, így nem kell minden új aldomainhez külön tanúsítványt igényelni. A Let’s Encrypt ingyen ad ki wildcard tanúsítványt, de csak DNS-validációval: a domain feletti rendelkezést egy _acme-challenge.pelda.hu nevű TXT rekorddal kell igazolni.

A cPanel tárhelyeken erre általában nincs szükség, mert az AutoSSL minden aldomainre automatikusan tanúsítványt igényel. Ez a cikk saját VPS-t vagy dedikált szervert üzemeltetőknek szól.

Mire figyeljen?

  • A *.pelda.hu csak az aldomaineket védi, magát a pelda.hu címet nem. Ezért mindkettőt kérje: -d pelda.hu -d '*.pelda.hu'.
  • A wildcard csak egy szintet véd: a bolt.pelda.hu címre érvényes, a teszt.bolt.pelda.hu címre nem.
  • A TXT rekordot minden megújításkor újra létre kell hozni. Kézi létrehozással a megújítás nem automatizálható, ezért használjon olyan eszközt, amely a DNS-szolgáltató API-ján keresztül maga hozza létre a rekordot.

acme.sh-val (javasolt)

Az acme.sh egy könnyű ACME-kliens, amely több mint száz DNS-szolgáltató API-ját támogatja.

Telepítés

curl https://get.acme.sh | sh -s email=it@pelda.hu
source ~/.bashrc
acme.sh --set-default-ca --server letsencrypt

Az utolsó parancs a Let’s Encryptet állítja be alapértelmezett kiadónak, mert az acme.sh magától a ZeroSSL-t használja.

Igénylés, ha a DNS a Cloudflare-nél van

Hozzon létre a Cloudflare-ben egy API-tokent Zone → DNS → Edit jogosultsággal az adott domainre, majd:

export CF_Token="a-cloudflare-api-token"
acme.sh --issue --dns dns_cf -d pelda.hu -d '*.pelda.hu'

Igénylés, ha a DNS a cPanel tárhelyén van

Ha a domain a mi névszervereinket használja, és a DNS-zónát a cPanelben kezeli, az acme.sh a cPanel API-ján keresztül is létre tudja hozni a rekordot. Hozzon létre a cPanelben egy API-tokent (Biztonság → Manage API Tokens), majd:

export cPanel_Username="cpanel-felhasznalonev"
export cPanel_Apitoken="a-cpanel-api-token"
export cPanel_Hostname="https://a-cpanel-szerver-neve:2083"
acme.sh --issue --dns dns_cpanel -d pelda.hu -d '*.pelda.hu'

Az API-token teljes hozzáférést ad a cPanel-fiókhoz, ezért kezelje úgy, mint egy jelszót.

Telepítés a webszerverbe

acme.sh --install-cert -d pelda.hu \
  --key-file       /etc/ssl/pelda.hu.key \
  --fullchain-file /etc/ssl/pelda.hu-fullchain.crt \
  --reloadcmd      "systemctl reload nginx"

Az acme.sh a telepítéskor egy napi cron-feladatot is beállít, amely időben megújítja a tanúsítványt, a fenti helyekre másolja, és újratölti a webszervert. Az API-adatokat elmenti, így a megújításhoz nem kell újra megadni őket.

Certbottal

A Certbot is tud wildcard tanúsítványt igényelni, ha van bővítménye az Ön DNS-szolgáltatójához. Például Cloudflare esetén:

dnf install python3-certbot-dns-cloudflare   # vagy: apt install python3-certbot-dns-cloudflare

cat > /root/.cloudflare.ini <<'EOF'
dns_cloudflare_api_token = a-cloudflare-api-token
EOF
chmod 600 /root/.cloudflare.ini

certbot certonly --dns-cloudflare \
  --dns-cloudflare-credentials /root/.cloudflare.ini \
  -d pelda.hu -d '*.pelda.hu'

A megújítás ugyanúgy automatikus, mint a többi Certbot-tanúsítványnál, lásd: Let’s Encrypt tanúsítvány igénylése Certbottal.

Kézi DNS-validáció (csak egyszeri használatra)

Ha a DNS-szolgáltatójához nincs API, a rekordot kézzel is létrehozhatja:

certbot certonly --manual --preferred-challenges dns -d pelda.hu -d '*.pelda.hu'

A Certbot kiírja a létrehozandó TXT rekord nevét és értékét. Hozza létre a DNS-ben, várjon, amíg látható lesz (dig TXT _acme-challenge.pelda.hu +short), és csak utána nyomjon Entert. Az így kapott tanúsítvány nem újul meg automatikusan, a lejárata előtt a műveletet meg kell ismételnie. Tartós megoldásnak ezért nem javasolt.

Tipp: CNAME-delegálás

Ha nem szeretne a teljes DNS-zónához hozzáférést adó API-kulcsot a szerveren tárolni, az _acme-challenge.pelda.hu nevet egy CNAME rekorddal átirányíthatja egy másik, csak erre a célra használt zónába, amelyhez API-hozzáférése van. Az acme.sh ezt a --challenge-alias kapcsolóval támogatja.

Ha a domainen CAA rekord van, abban szerepeljen a letsencrypt.org, wildcard tanúsítványnál az issuewild címkével is, ha ilyen rekordot használ.