It produced this output:
ertbot failed to authenticate some domains (authenticator: nginx). The Certificate Authority reported these problems:
Domain: anthonycregan.dev
Type: dns
Detail: no valid A records found for anthonycregan.dev; no valid AAAA records found for anthonycregan.dev
My web server is (include version):
Ubuntu running on raspberry pi (nginx as reverse proxy to express server)
The operating system my web server runs on is (include version):
Ubuntu 22.04.2 LTS
My hosting provider, if applicable, is:
Domain is registered with Namecheap and can be seen to have an "A" record if you use this tool here: https://toolbox.googleapps.com/apps/dig/#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):
2.6.0
ReservedAddress
Fatal
A private, inaccessible, IANA/IETF-reserved IP address was found for anthonycregan.dev. Let's Encrypt will always fail HTTP validation for any domain that is pointing to an address that is not routable on the internet. You should either remove this address and replace it with a public one or use the DNS validation method instead.
10.62.247.114
To issue a certificate to you, Let's Encrypt needs to verify that you own the requested domain name(s). With --nginx option it would entail passing a HTTP-01 challenge, which in turn entails connecting to an ip behind a domain name, which in your case wouldn't be possible.
You can point a domain name on it, but that computer is not on the public internet and is not accessible to anyone outside of your ISP's network.
If you only need a website and SSL certificate for use within your ISP's network, you can use the DNS-01 challenge.
If you want your website to be visible to the general public, you will need your ISP to give you a public IP address or use a hosting provider elsewhere.
So it could be that all is not lost! If I set it up on my router to traffic connections to that address on ports 80/443 to my pi server then that should fix it should it not?
Yes, that is a significant step forward.
You would need the DNS A record to use that IPv4 Address of 121.6.138.122,
now if that dynamically changes from time to time the DNS A record needs updating as well.
Edit:
Also presently both Port 80 and 443 are not OPEN but filtered
$ nmap -Pn -p80,443 121.6.138.122
Starting Nmap 7.80 ( https://nmap.org ) at 2023-06-30 13:08 PDT
Nmap scan report for bb121-6-138-122.singnet.com.sg (121.6.138.122)
Host is up.
PORT STATE SERVICE
80/tcp filtered http
443/tcp filtered https
Nmap done: 1 IP address (1 host up) scanned in 3.71 seconds
Ive used my routers port forwarding to forward 80 and 443 but its 4:10 in the morning here in singapore and my wife will be very angry if I dont go to bed soon
I'll pick this up again tomorrow, thank you very much for all your help. I've been stuck on this for days and this finally feels like progress again.