Aber DNS-Challenge braucht doch nie offene Ports. Es basiert aber darauf, dass man einen DNS-Provider mit DNS-API hat.
Grundprinzip: Du forderst ein Zertifikat oder eine Verlängerung für z.B. "deinedomain.de" bei LE an. LE sagt: "Beweise erstmal, dass das deine ist. Legt erstmal einen TXT-Record mit folgendem Inhalt an, in ein paar Minuten prüfe ich das". Über die DNS-API wird der TXT-Record angelegt, danach geprüft, du bekommst/verlängerst dein Zertifikat, dann wird der Record wieder gelöscht. Ich praktiziere das seit Jahren mit "netcup" als DNS-Provider und acme.sh als Script auf meiner DS1522+. Allerdings ist die API von netcup etwas lahm, so dass man ein Delay von etwa 10 Minuten zwischen Anlegen und Prüfung einbauen muss. Bei ipv64.net als DNS-Provider geht das wesentlich schneller.
Edit: Auf meinem vServer nutze ist den NGINX-Proxy-Manager als Reverse-Proxy. Der hat den ganzen Mechanismus für die Beantragung/Verlängerung bereits eingebaut.