Right now, every time a user requests a Let’s Encrypt certificate, the underlying system uses certbot with the http
challenge.
What does it mean? It means there are few strong requirements to make it work:
- the machine must have the HTTP port (tcp 80) open to public world
- a DNS record should be already in place and pointing to the public machine IP
Yesterday, I’ve been working a little bit on adding the dns
challenge instead of the http
one.
Pros:
- you can request a certificate from a machine without a valid DNS and without a public accessible HTTP port (very usefull for development scenarios!)
- you can request a wildcard certificate
Cons:
- your DNS provider must be supported by certbot (CloudFlare and DigitalOcean are supported and have a free plan)
- your DNS NS records must point to the DNS provider (see some examples here)
I’m still not sure if it worth adding a UI for it , but I’d like to hear feedback from you!
How to test it:
- install the package from testing:
yum --enablerepo=nethserver-testing install nethserver-letsencrypt
- follow the doc on how to request the certificate: https://docs.nethserver.org/projects/nethserver-devel/en/latest/nethserver-letsencrypt.html#dns-challenge
- access the Server Manager and use the certificate which will be renewed automatically
See also the PR.