Well, no, that just means nginx is listening on port 80. And, icecast on 8000 (and 443)
But, if you have port forwarding active you could have sent port 80 to port 8000, for example. And, I wasn't even sure your nginx and icecast were the same machine but I guess that proves at least that much.
Did you restart nginx after making those changes? Because really there shouldn't be a 502 Gateway problem for a URL that is not handled by a proxy
Okay, understood. Went ahead and restarted both the server, and when that didn't work, rebooted the whole machine. Still getting the same error seen above.
Double checked my port forwarding and as far as I can tell, 80 is passing through. I'm wondering if I'm getting bit by the LetsEncrypt geoblocking bug from earlier this year? I haven't tried renewing since this update.
No, that is a completely different error and set of symptoms.
You could check the two nginx logs. Can you rerun the renew --dry-run and then show any recent entries in those logs around the time you retried this.
Ideally you would add those two lines to the port 80 server block BUT use different file names so we can be sure it is getting to the right place. Maybe like below. Be sure to restart nginx after making changes access_log /var/log/nginx/access80.log; error_log /var/log/nginx/error80.log;
That folder looks odd in your error log. Do you have any kind of mapping of one folder to another? I'm not sure why nginx shows the path that way. Maybe it always does I will have to check but need to step away for a bit.
I don't have many good guesses on why that path shows like that in the error log. A root folder is prefixed to the URI and this becomes the path to the file. You can do other clever things like alias but I did not see one in your config. The only other ideas involve odd drive setup like using symlinks or virtual mapped drives or such. Sometimes permission problems can create 404 but you are running as root.
Here is what a not-found looks like usually:
2024/09/01 18:29:56 [error] 1537#1537: *1 open() "/var/www/html/Test404" failed (2: No such file or directory),
In the above case the root was /var/www/html and just Test404 as the URI
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Simulating renewal of an existing certificate for stream.no-soap.net
The dry run was successful.
here's sudo ls -l /usr/share/icecast2
total 8
drwxr-xr-x 2 root root 4096 Feb 24 2024 admin
drwxr-xr-x 2 root root 4096 Sep 1 14:22 web
Yes, good. Trying to resolve the --webroot path would be a lot of trial and error. And, like I said, I don't have many good ideas (or tons of spare time).
The --nginx method inserts temp code into the port 80 server block to satisfy the challenge. it does it in a way that bypasses the file system. It's actually a nice method.
To switch to that just re-run that same command without --dry-run. You will get a new production cert and your /etc/letsencrypt/renewal config profile will get updated to use this method. You can then test this new renew profile with:
sudo certbot renew --dry-run
The --nginx plugin is common option and should work well going forward. If you want to post that Certbot log file I described to see if any clues why --webroot failed we could. I have worked on a very large number of problems and have never seen this kind of failure. I am a little curious but the juice may not be worth the squeeze - as the saying goes.
Good you are on a successful path for certs again. Looks like you still have to get your icecast server to recognize the new cert though. I see it using a very old cert yet in reply to HTTPS requests (on port 443).
Note the Let's Debug says "OK" but in your case that is a false result. When Let's Debug runs a test it expects to see "404" errors. It cannot create files on your server so of course your server says "not found" when asked for them. Let's Debug is checking mostly for comms connections and other obvious misconfigurations.
It is a very useful tool and always a good place to start. But, in unusual cases like yours you have to understand all the twists and turns to know what conclusions can be drawn from its results.
In your case, the "404" is caused by some oddity on your system we never explained. And, as long as Let's Debug reports 404 rather than 502 or Timeout or something then at least that's helpful to know.
As far as that goes it was a temp problem using IPv6 to connect from the Let's Debug server to the Let's Encrypt API server. Nothing to do with your system at all Just one of those quirks that happens sometimes.