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.hucsak az aldomaineket védi, magát apelda.hucímet nem. Ezért mindkettőt kérje:-d pelda.hu -d '*.pelda.hu'. - A wildcard csak egy szintet véd: a
bolt.pelda.hucímre érvényes, ateszt.bolt.pelda.hucí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.