Certbot requires an open port 80. However, I have nginx set up to route port 80 traffic through the SSL port. I'm confused as to how this should be set up.
My domain is: winvm.link
I ran this command: N/A
It produced this output: N/A
My web server is (include version): nginx 1.18.0
The operating system my web server runs on is (include version): Win 11 Pro 21H2
My hosting provider, if applicable, is: N/A
I can login to a root shell on my machine (yes or no, or I don't know): yes
I'm using a control panel to manage my site (no, or provide the name and version of the control panel): No
The version of my client is (e.g. output of certbot --version or certbot-auto --version if you're using Certbot): N/A
Certbot doesn't require that you let it listen on port 80. (It can, but there is no requirement)
Certbot is more than happy to use your existing webserver. You can either
use the automatic way with certbot --nginx or
tell certbot manually where the webroot is: certbot certonly --webroot -w /path/to/webroot --deploy-hook "service nginx reload" and install your certificates manually.
What do you mean with "requires an open port 80"? The usual context such a phrase is used in combination with the http-01 challenge (which is part of the ACME protocol and not directly related to Certbot) where it means that the Let's Encrypt validation server should be able to connect on port 80 and retrieve some specific content. And that usually is related to things like firewalls, routers and/or ISPs blocking port 80.
In setup, I receive the below error (-v option doesn't tell me any more)...
The Certificate Authority failed to download the challenge files from the temporary standalone webserver started by Certbot on port 80. Ensure that the listed domains point to this machine and that it can accept inbound connections from the internet.
Here's my setup...
This whole thing is installed on a Hyper-V based Windows VM
This VM has a Static IP which I get from creating such through my VPN provider
My domain (winvm.link) is directed/linked to that IP
Don't stop nginx, use the certbot webroot plugin instead of the standalone one.
certbot renew --webroot -w [path to webroot] --deploy-hook "[command to reload nginx]"
(assuming nginx accepts connections on port 80 -- you only need to run that command once. Then the autorenew timer should take over and remember your options.)