Pro obnovu certifikátu ACME protokolem potřebujete prokázat vlastnictví domény. Buď přes HTTP (musíte na webové adrese, pro kterou certifikát získáváte, zveřejnit soubor s daným obsahem) – tj. potřebujete, aby se z internetu daný DNS záznam přeložil na nějaký webový server, na kterém bude vystavený alespoň ten jeden soubor. Nebo přes DNS – je potřeba do zóny příslušné domény vložit správný TXT záznam. (Ostatní metody se moc nepoužívají a mají stejné požadavky, jako HTTP metoda). Řešení s DNS je u interních webů méně invazivní – nemusíte řešit, aby se na internetu DNS název překládal na server zprostředkující ověření a ve vnitřní síti na adresu se skutečným webem.
Za mne je nejjednodušší řešení použít
Caddy server – klidně jen v roli reverzního proxy serveru. Použití Let's Encrypt certifikátů obecně tam nakonfigurujete tak, že server prostě spustíte – Caddy má zabudovanou automatickou výměnu certifikátů přes Let's Encrypt a ta je ve výchozím nastavení zapnutá. Používá ale ve výchozím nastavení HTTP metodu, nicméně lze ho přepnout na použití DNS metody. Umí se napojit na API spousty poskytovatelů DNS služeb, takže jenom nakonfigurujete, že pro danou doménu se má používat DNS metoda, který DNS poskytovatel se má použít a přístupové údaje k poskytovateli, a o zbytek už se postará Caddy.
Konfigurace vydávání certifikátů v Caddy pak může vypadat třeba takhle:
{
"module": "acme",
"ca": "https://acme-v02.api.letsencrypt.org/directory",
"email": "**********",
"challenges": {
"dns": {
"provider": {
"name": "cloudflare",
"api_token": "**************************"
}
}
}
}
(Je to JSON, protože mi připadá přehlednější a udržovatelnější. Caddy má ale možnost používat i svůj vlastní formát konfigurace, který je zjednodušený a kde by to nejspíš zabralo jeden či dva řádky.)