My domain is:
not really domain.com, but likely irrelevant to the convo.
I ran this command:
certbot certonly --webroot -w /var/www/html -d domain.com -d www.domain.com
It produced this output:
- The following errors were reported by the server:
Domain: domain.com
Type: unauthorized
Detail: Invalid response from
http://domain.com/.well-known/acme-challenge/8qHxp1tzM1Fat-XVV6zKHZZBxZ9aqO1cAMj_vZ2X1XA
[<IP>]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML
2.0//EN\">\n<html><head>\n<title>403
Forbidden</title>\n</head><body>\n<h1>Forbidden</h1>\n<p"
Domain: www.domain.com
Type: unauthorized
Detail: Invalid response from
http://www.domain.com/.well-known/acme-challenge/QMXETgpJJaGZkcFcX7-meduHaJkRGY46DQRWS7sPVQ8
[<IP>]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML
2.0//EN\">\n<html><head>\n<title>403
Forbidden</title>\n</head><body>\n<h1>Forbidden</h1>\n<p"
My web server is (include version):
Apache 2.4.29-1ubuntu
The operating system my web server runs on is (include version):
Ubuntu 18.04
My hosting provider, if applicable, is:
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):
0.28.0
Additional Details:
I set apache2 to LogLevel Debug
and attempted to access the challenge through a browser. The log yielded the following lines
[Tue Apr 09 16:49:46.859177 2019] [ssl:info] [pid 8295] [client myip:16191] AH01964: Connection to child 0 established (server domain:443)
[Tue Apr 09 16:49:46.860021 2019] [ssl:debug] [pid 8295] ssl_engine_kernel.c(2139): [client myip:16191] AH02043: SSL virtual host for servername domain found
[Tue Apr 09 16:49:46.860246 2019] [ssl:debug] [pid 8295] ssl_engine_kernel.c(2139): [client myip:16191] AH02043: SSL virtual host for servername domain found
[Tue Apr 09 16:49:46.860366 2019] [core:debug] [pid 8295] protocol.c(2257): [client myip:16191] AH03155: select protocol from , choices=h2,http/1.1 for server domain
[Tue Apr 09 16:49:46.896611 2019] [ssl:debug] [pid 8295] ssl_engine_kernel.c(2067): [client myip:16191] AH02041: Protocol: TLSv1.2, Cipher: ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
[Tue Apr 09 16:49:46.918325 2019] [ssl:debug] [pid 8295] ssl_engine_kernel.c(377): [client myip:16191] AH02034: Initial (No.1) HTTPS request received for child 0 (server domain:443)
[Tue Apr 09 16:49:46.918669 2019] [authz_core:debug] [pid 8295] mod_authz_core.c(809): [client myip:16191] AH01626: authorization result of Require all denied: denied
[Tue Apr 09 16:49:46.918784 2019] [authz_core:debug] [pid 8295] mod_authz_core.c(809): [client myip:16191] AH01626: authorization result of <RequireAny>: denied
[Tue Apr 09 16:49:46.918907 2019] [authz_core:error] [pid 8295] [client myip:16191] AH01630: client denied by server configuration: /var/www/html/.well-known/acme-challenge/test.txt
[Tue Apr 09 16:49:47.071186 2019] [ssl:debug] [pid 8295] ssl_engine_kernel.c(377): [client myip:16191] AH02034: Subsequent (No.2) HTTPS request received for child 0 (server domain:443)
[Tue Apr 09 16:49:47.071466 2019] [authz_core:debug] [pid 8295] mod_authz_core.c(809): [client myip:16191] AH01626: authorization result of Require all granted: granted
[Tue Apr 09 16:49:47.071623 2019] [authz_core:debug] [pid 8295] mod_authz_core.c(809): [client myip:16191] AH01626: authorization result of <RequireAny>: granted
[Tue Apr 09 16:49:47.071870 2019] [authz_core:debug] [pid 8295] mod_authz_core.c(809): [client myip:16191] AH01626: authorization result of Require all granted: granted
[Tue Apr 09 16:49:47.071983 2019] [authz_core:debug] [pid 8295] mod_authz_core.c(809): [client myip:16191] AH01626: authorization result of <RequireAny>: granted
[Tue Apr 09 16:49:47.086175 2019] [ssl:debug] [pid 8295] ssl_engine_io.c(1103): [client myip:16191] AH02001: Connection closed to child 0 with standard shutdown (server domain:443)
Looking at the log, it looks like there’s two conflicting authz_core rules going on here. I checked this Apache thread about upgrading from 2.2 to 2.4 and how the config lines change in how they name directives. To get around the issue for now, I loaded mod_authz_compat
.
More Context:
Here are the contents of my .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{REQUEST_URI} !^/\.well-known/(acme-challenge|pki-validation)/(.*)
</IfModule>
Credit to this thread for the last line in this config. Helped me with half of the issue
Also, yes the directory and it’s file at .well-known/acme-challenge/test.txt
has been 755
'd.
I think that my solution is found in the answer to this question: is the best way to go about finding the authz rule that is impeding access to the ACME challenge?