My domain is:
mydomain.us (not actual domain but same format)
I ran this command:
sudo certbot certonly -d "*.mydomain.us" -d "mydomain.us" --agree-tos --manual-public-ip-logging-ok --server https://acme-v02.api.letsencrypt.org/directory --preferred-challenges dns --manual --manual-auth-hook /etc/letsencrypt/acme-dns-client --debug-challenges --dry-run
It produced this output:
Certbot failed to authenticate some domains (authenticator: manual). The Certificate Authority reported these problems:
Domain: mydomain.us
Type: unauthorized
Detail: No TXT record found at _acme-challenge.mydomain.us
Domain: mydomain.us
Type: unauthorized
Detail: No TXT record found at _acme-challenge.mydomain.us
Hint: The Certificate Authority failed to verify the DNS TXT records created by the --manual-auth-hook. Ensure that this hook is functioning correctly and that it waits a sufficient duration of time for DNS propagation. Refer to "certbot --help manual" and the Certbot User Guide.
Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
My web server is (include version):
Nginx
The operating system my web server runs on is (include version):
Raspberry Pi Debian
My hosting provider, if applicable, is:
Google domains
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):
Certbot 1.18.0
Additional info:
Basically i am trying to run my own local acme-dns server which i have attempted to run both locally on the same server as my domain as well as through my nginx reverse proxy at acme.mydomain.us
In both cases i can successfully update my locally ran acme dns server with username and txt, as witnessed in command prompt output live as certbot is called.
For whatever reason, certbot is not reading text files from my local acme dns instance. I realize i could do a call to an existing acme-dns server but have been bullheaded in my instance on running my own local server.
My DNS is through google domains and looks like the following:
*.mydomain.us IN CNAME mydomain.us
_acme-challenge.mydomain.us. IN CNAME 729f8f2e-f8c5-4b23-a0e2-8605d3e77cb7.acme.mydomain.us.
www.mydomain.us. IN CNAME mydomain.us
mydomain.us. IN A [SOMEPUBLICIP]
The acme-dns instance has been called via acme-dns-auth.py from acme-dns-certbot-joohoi/acme-dns-auth.py at master · joohoi/acme-dns-certbot-joohoi · GitHub
As well as from acme-dns-client from GitHub - joohoi/acme-dns-client-1: A client software for https://github.com/joohoi/acme-dns
with identical results. I can register values inside my acme-dns instance and i cannot call the stored TXT files from it at 729f8f2e-f8c5-4b23-a0e2-8605d3e77cb7.acme.mydomain.us
In fact, whenever i enable acme-dns instance i typically cannot resolve acme.mydomain.us.
I have attempted to store acme.mydomain.us. as an A record in my Google DNS with no avail.
My acme-dns config (/etc/acme-dns/config.cfg) that is running on a second local server instance looks like this:
[general]
DNS interface. Note that systemd-resolved may reserve por># In this case acme-dns will error out and you will need to># for example: listen = "127.0.0.1:53"
listen = "127.0.0.1:53"
protocol, "both", "both4", "both6", "udp", "udp4", "udp6">protocol = "both"
domain name to serve the requests off of
domain = "mydomain.us"
zone name server
nsname = "acme.mydomain.us" # admin email address, where @ is substituted with .
nsadmin = "admin.mydomain.us"
predefined records served in addition to the TXT
records = [
domain pointing to the public IP of your acme-dns ser>
"acme.mydomain.us. IN A [SOMEPUBLICIP] ", "ns1.acme.mydomain.us. IN A [SOMEPUBLICIP] ",
debug = false
[database]
Database engine to use, sqlite3 or postgres
engine = "sqlite3"
Connection string, filename for sqlite3 and postgres://$u>
Please note that the default Docker image uses path /var/>connection = "/home/ubuntu/mydatabase.db"
#connection = "/var/lib/acme-dns/acme-dns.db" # connection = "postgres://user:password@localhost/acmedns_>
[api]
listen ip eg. 127.0.0.1 ip = "0.0.0.0"
disable registration endpoint
disable_registration = false
listen port, eg. 443 for default HTTPS
autocert_port = "80"
port = "771"
possible values: "letsencrypt", "letsencryptstaging", "ce>tls = "none"
only used if tls = "cert"
tls_cert_privkey = "/etc/tls/example.org/privkey.pem" tls_cert_fullchain = "/etc/tls/example.org/fullchain.pem"
only used if tls = "letsencrypt
TL;DR
Can't read stored TXT records in ACME-DNS generated example.acme.mydomain.us addresses. Suspect DNS issue or port issue or nginx forwarding issue, have attempt 5 days of fixing this with no avail, attempted local install of ACME-DNS on webserver and no difference in ability to resolve acme-dns instance generated subdomains. Please help.
acme-dns-client check or list all return proper credentials stored and CNAMES properly resolving, but this specific check does not query for the TXT record and that is what is not resolving.