My web server is intentionally behind a firewall that’s port translating external port 11443 to internal port 443. How do I get certbot to work through that?
So you mean external people (like me or anyone else on the internet) would have to type in https://xymon.watersprings.net:11443 to get to your site?
Or do you mean it the other way around? That your Apache is listening on port 11443 and that your firewall translates my request on port 443 to the port 11443 on Apache?
The HTTP-01 challenge can only be done on port 80. Allowing clients to specify arbitrary ports would make the challenge less secure, and so it is not allowed by the ACME standard.
If you cannot open Port 80, then you could try switching to the DNS-01 challenge type.
In addition to @ezekiel’s post: this isn’t a limitation of Let’s Encrypt, but is mandated by the CA/B Forum, the consortium which regulates the SSL/TLS certificate guidelines.
Ok, so I opened both ports 80 and 443 and was successful in installing the cert. Then I closed both ports again. Now the port 11443 translation works as expected.
My question now is will the cert auto-renew next month? Or will I need to open port 80 in order for it to auto-renew?
Port 80 will need to be open for the duration of each HTTP-01 Challenge validation attempt. So, if you do not want Port 80 to simply remain open, then you’ll have to open the port each time.