

I’m using https://github.com/dracut-crypt-ssh/dracut-crypt-ssh on some of my servers. The initrd opens an ssh port where you can login and enter the passphrase. Setting it up is non-trivial, but it works well. Haven’t tried it on Debian but there should be something similar.
+1 for the letsencrypt wildcard with DNS verification, been using this for years. with dehydrated (https://github.com/dehydrated-io/dehydrated) you can automate renewing the certs, pretty convenient.
One thing i didn’t see mentioned yet - you can also easily create a wildcard for a subdomain of your domain, e.g.
*.local.example.com
. Most DNS providers let you define something like_acme-challenge.local IN TXT ...
so you don’t even need to define an extra zone forlocal.example.com
. Probably makes no big difference, but i like it ^^