I’m currently running a bunch of services behind a reverse proxy and that proxy is configured to use let’s encrypt for ssl certs using DNS-01 challenges for renewals. All of the services are configured to only work using Tailscale IPs, so, as far as I’m aware, none of the services are open to the internet, except for port 80.
I noticed if I don’t leave port 80 open, when it’s time for renewal, everything fails. This leads to a bunch of logs on my Unifi setup saying intrusion attempts have been blocked on port 80. I thought I could go to Let’s Encrypt’s website and find a list of IPs I could put on an allow list but they don’t post those. So my questions are:
-
If I understand the process correctly, Let’s Encrypt checks the DNS TXT record to verify I own a domain, then sends a new cert to my server over port 80; meaning, I have to have port 80 open during the renewal process, correct?
-
If that’s correct, what do you all do about port 80? Do you just have a script to open the port during the renewal process and close it afterwards or do you just leave it open all the time? Is there maybe a tool that already has this functionality?
-
I think I have port 443 open as well but I don’t remember if that’s needed or if I did that when I opened port 80. Does 443 need to be open too?
Thanks
BennyInc@feddit.org 3 hours ago
If you use DNS-01, you don’t need port 80 open.
tinfoilsocks@lemmy.ml 3 hours ago
Oh. So, that’s only needed for HTTP-01 challenges? Doesn’t my server need to receive a file or something from Let’s Encrypt, how does that work?
theit8514@lemmy.world 3 hours ago
The ACME client generates the private key to keep and a signing request to send to the CA. Once the CA validates your challenge type, the client requests the signed cert over that same channel. It doesn’t interact with 80 or 443 except to complete challenges.