Please fill out the fields below so we can help you better. Note: you must provide your domain name to get help. Domain names for issued certificates are all made public in Certificate Transparency logs (e.g. https://crt.sh/?q=example.com), so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.
It produced this output:
"
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for cloudruler.io
Enabled Apache rewrite module
Waiting for verification…
Cleaning up challenges
Failed authorization procedure. cloudruler.io (http-01): urn:ietf:params:acme:error:dns :: No valid IP addresses found for cloudruler.io
Let’s Encrypt treats hostnames in certificate requests very precisely. To get a certificate for https://cloudruler.io/, you need to validate the exact name cloudruler.io.
While it’s possible they’ve purposefully asked their registrar to configure the DNS servers for their domain to both Office365 (*.bdm.microsoftonline.com) and Azure DNS (*.azure-dns.*) and are manually keeping both zones in sync (and failing), it’s more likely this is a mistake. They need to pick which DNS provider will be authoritative for the apex domain and remove the other.
At the moment, it will be random chance which authoritative nameserver the validation servers use to query the domain. If they happen to pick an Azure DNS nameserver where the A record actually exists, things will work. If they pick one of the Office 365 ones where it doesn’t exist, things won’t work.
C:\>dig ns cloudruler.io. @a0.nic.io +noall +authority
; <<>> DiG 9.9.8-P3 <<>> ns cloudruler.io. @a0.nic.io +noall +authority
;; global options: +cmd
cloudruler.io. 86400 IN NS ns1.bdm.microsoftonline.com.
cloudruler.io. 86400 IN NS ns2.bdm.microsoftonline.com.
cloudruler.io. 86400 IN NS ns4.bdm.microsoftonline.com.
cloudruler.io. 86400 IN NS ns4-03.azure-dns.info.
cloudruler.io. 86400 IN NS ns1-03.azure-dns.com.
cloudruler.io. 86400 IN NS ns2-03.azure-dns.net.
cloudruler.io. 86400 IN NS ns3.bdm.microsoftonline.com.
cloudruler.io. 86400 IN NS ns3-03.azure-dns.org.
C:\>dig ns cloudruler.io @ns1-03.azure-dns.com +short
ns1-03.azure-dns.com.
ns2-03.azure-dns.net.
ns3-03.azure-dns.org.
ns4-03.azure-dns.info.
C:\>dig ns cloudruler.io @ns1.bdm.microsoftonline.com +short
ns1.bdm.microsoftonline.com.
ns2.bdm.microsoftonline.com.
ns3.bdm.microsoftonline.com.
ns4.bdm.microsoftonline.com.
C:\>dig a cloudruler.io @ns1-03.azure-dns.com +short
13.85.31.243
C:\>dig a cloudruler.io @ns1.bdm.microsoftonline.com +short
(no result)
The *.bdm.microsoftonline.com records were removed last night, and I tried the same command again this afternoon and got the error:
Failed authorization procedure. cloudruler.io (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://cloudruler.io/.well-known/acme-challenge/hhxiTAy9gaVIp2KIwbJ9S2xzpYlmJaUIxj1U5eltzFQ [13.85.31.243]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: cloudruler.io
Type: unauthorized
Detail: Invalid response from
http://cloudruler.io/.well-known/acme-challenge/hhxiTAy9gaVIp2KIwbJ9S2xzpYlmJaUIxj1U5eltzFQ
[13.85.31.243]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML
2.0//EN\">\n<html><head>\n<title>404 Not
Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address.
I’m not sure how to place a test file there, I do not see a .well-known/acme-challenge/ directory to place a file in. Is that something I set up with LetsEncrypt or Certbot?
Certbot should create the folder (as needed).
You can simulate that by adding the folder (and subfolder) to your document_root path.
Most likely your apache configs are imperfect and certbot is confused on exactly where to place the challenge file.
You basically have two options to overcome this problem:
fix the apache configuration files
this requires finding any overlapping/ambiguous/default server names (or aliases)
[to help find them, you can use: apachectl -S]
send all challenge requests to a specific location
this can be done with an alias statement in main config file (usually: /etc/apache2/apache2.conf)
I will go with option 2, " send all challenge requests to a specific location
this can be done with an alias statement in main config file (usually: /etc/apache2/apache2.conf ) ", rg305.
The command i ran was:
sudo certbot --apache
This is the full output:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
No names were found in your configuration files. Please enter in your domain
name(s) (comma and/or space separated) (Enter 'c' to cancel): cloudruler.io
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for cloudruler.io
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Failed authorization procedure. cloudruler.io (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://cloudruler.io/.well-known/acme-challenge/DFufFcqja_UQuz9baAsAyEL3OTqgQoDltG2WSxZqSb0 [13.85.31.243]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: cloudruler.io
Type: unauthorized
Detail: Invalid response from
http://cloudruler.io/.well-known/acme-challenge/DFufFcqja_UQuz9baAsAyEL3OTqgQoDltG2WSxZqSb0
[13.85.31.243]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML
2.0//EN\">\n<html><head>\n<title>404 Not
Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address.
Step 1: Create a folder to hold/serve all challenge files
1a. Decide where the folder is to be located (I use /ACME-challenges/ and will show that in this example - feel free to change that to whatever you like)
1b. create the folder: mkdir /ACME-Challenges/
Step 2: Use the folder.
2a. Edit your main config (using your preferred editor - vi used in this example) vi /etc/apache2/apache2.conf
Add the following line at the end/bottom: Alias /.well-known/acme-challenge/ /ACME-challenges/
2b. Restart/Reload apache (via your preffered bethod - I use:) systemctl restart apache2