letsencrypt-wedos icon indicating copy to clipboard operation
letsencrypt-wedos copied to clipboard

Skripty pro validaci přes DNS záznamy vedené u Wedosu umožňující wildcard certifikáty

letsencrypt-wedos

Skripty pro validaci přes DNS záznamy (metoda DNS-01) vedené u Wedosu umožňující validaci wildcard certifikátů.

Požadavky

  • PHP 7.0+ CLI (rozšíření: curl, json, intl)
  • aktuální certbot na Linuxu, nastavený server acme-v02
  • DNS záznamy hostované u Wedosu
  • u Wedosu zapnuté rozhraní WAPI

Certbot při generování wildcard certifikátů automaticky volí metodu validace DNS-01. Také však pro úplný DNS záznam potřebuje mít funkční metodu validace HTTP-01.

Tato sada skriptů podporuje oboje. Vzhledem k časové náročnosti replikace změn DNS zázamů je potřeba čekat na dokončení přidání DNS záznamu, skript čeká dokud nejsou viditelné, maximálně však 20 minut. Po validaci certbot zahájí čištění DNS záznamu a volá ho se stejnými parametry, tedy je po použití vymazán jen záznam, který tam byl vložen.

Jsou podporovány i wildcard domény dalších řádů, např. *.subdomena.domena.tld, ale systém rozpozná také zvláštní veřejné domény umožňující registrace třetího řádu (*.domena.co.uk).

Instalace

  • nahrajte obsah do složky /etc/letsencrypt/scripts/
  • nastavte oprávnění +x souborům authenticator.php a cleanup.php
  • nastavte oprávnění +w do složky cache/
  • ve složce auth-methods/http01 zkopírujte config.php.dist do config.php a do jeho obsahu nastavte webroot
  • ve složce auth-methods/wedos-dns01 zkopírujte config.php.dist do config.php a do jeho obsahu vložte váš přihlašovací e-mail a WAPI heslo
  • nastavte /etc/letsencrypt/cli.ini dle konfigurace níže:
  • otestujte: certbot certonly -d domena.tld -d *.domena.tld --dry-run

Ukázková konfigurace cli.ini

server = https://acme-v02.api.letsencrypt.org/directory
# email = 
agree-tos = true
# renew-hook = /bin/run-parts /etc/letsencrypt/renew-hook.d/

authenticator = manual
manual-auth-hook = /etc/letsencrypt/scripts/authenticator.php
manual-cleanup-hook = /etc/letsencrypt/scripts/cleanup.php
manual-public-ip-logging-ok = true