Hi. I cannot understand why my certbot
no longer works?
I have tried, but still get "unauthorized"?
certbot renew --force-renewal
I am trying to force a renewal (expires in 19 days) for my certs which I have had since Jan 2020, without incidents like this.
I am seeing:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Processing /etc/letsencrypt/renewal/www.ingber.com.conf
Renewing an existing certificate for blog.ingber.com and 6 more domains
Certbot failed to authenticate some domains (authenticator: webroot). The Certificate Authority reported these problems:
Domain: blog.ingber.com
Type: unauthorized
Detail: 173.255.212.226: Invalid response from https://blog.ingber.com/.well-known/acme-challenge/TvURY3PMXv67GeAlKdUKZHmtG2U3z3R1Y232ZjN_KsI: 403
Domain: default.ingber.com
Type: unauthorized
Detail: 173.255.212.226: Invalid response from https://default.ingber.com/.well-known/acme-challenge/pss3mrOz-Y8o-txmpFyWPQv_sCjXQl9L-pobUnY50dk: 403
Domain: ingber.com
Type: unauthorized
Detail: 173.255.212.226: Invalid response from https://ingber.com/.well-known/acme-challenge/NEtt4InrXgBa9qEOYcLXFkDZEP2HIeD2VbUV_WrdE5I: 403
Domain: lester.ingber.com
Type: unauthorized
Detail: 173.255.212.226: Invalid response from https://lester.ingber.com/.well-known/acme-challenge/nAvwU-PTrlwvIEX8SmylEstJlPDLiwCKJoK_hDRiczo: 403
Domain: lin.ingber.com
Type: unauthorized
Detail: 173.255.212.226: Invalid response from https://lin.ingber.com/.well-known/acme-challenge/6mbAcUhWBGkXlI6HSeLp8h-O0mq180toi4XhH-rXkvo: 403
Domain: lin6.ingber.com
Type: unauthorized
Detail: 173.255.212.226: Invalid response from https://lin6.ingber.com/.well-known/acme-challenge/EwJZ3BEBMlVesw512dz15zY6Z5tElRYyjkRk1FhtwJE: 403
Domain: www.ingber.com
Type: unauthorized
Detail: 173.255.212.226: Invalid response from https://www.ingber.com/.well-known/acme-challenge/CGim6tUr42n2ZbWPVlY0xF9AR2aerTKtKb74hdd4oto: 403
Hint: The Certificate Authority failed to download the temporary challenge files created by Certbot. Ensure that the listed domains serve their content from the provided --webroot-path/-w and that files created there can be downloaded from the internet.
Failed to renew certificate www.ingber.com with error: Some challenges have failed.
All renewals failed. The following certificates could not be renewed:
/etc/letsencrypt/live/www.ingber.com/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)
I am logged in as root, so I should be able to force any commands?
Thanks.
Lester
1 Like
I am using Linode for my VPS.
I can reproduce the "403" error using curl. The error looks caused by htaccess file. It does not affect HTTP requests to your "home" page. But, it does the acme-challenge path for some reason
# Original HTTP request redirects to HTTPS
curl -i http://blog.ingber.com/.well-known/acme-challenge/Test404
HTTP/1.1 302 Found
Server: Apache
Location: https://blog.ingber.com/.well-known/acme-challenge/Test404
# Following that gets 403
curl -i https://blog.ingber.com/.well-known/acme-challenge/Test404
HTTP/1.1 403 Forbidden
Date: Thu, 15 Aug 2024 18:55:11 GMT
Server: Apache
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access this resource.
Server unable to read htaccess file, denying access to be safe</p>
</body></html>
6 Likes
lingber:
--force-renewal
This will never help you.
Your issue isn't with something on your server where root access would help, it's that the Let's Encrypt server can't connect to yours to validate that you in fact control those domain names.
6 Likes
And shown is a different way with curl
Attempting the ACME Challenge on HTTP, and is redirects us to HTTPS
$ curl -Ii http://blog.ingber.com/.well-known/acme-challenge/sometestfile
HTTP/1.1 302 Found
Date: Fri, 16 Aug 2024 01:55:52 GMT
Server: Apache
Location: https://blog.ingber.com/.well-known/acme-challenge/sometestfile
Content-Type: text/html; charset=iso-8859-1
Following the redirect to HTTPS
Typically one would want to return Not Found instead of Forbidden
$ curl -k -i https://blog.ingber.com/.well-known/acme-challenge/sometestfile
HTTP/1.1 403 Forbidden
Date: Fri, 16 Aug 2024 01:56:55 GMT
Server: Apache
Content-Length: 261
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access this resource.Server unable to read htaccess file, denying access to be safe</p>
</body></html>
4 Likes
Rip
August 16, 2024, 2:04am
7
I'm getting a 403 also. ;@(
4 Likes
And check here for HTTP Response Close
3 Likes
rg305
August 16, 2024, 3:21am
9
Something has changed within the HTTP server block for those domains.
Please show the output of:
sudo apachectl -t -D DUMP_VHOSTS
4 Likes
lingber
August 23, 2024, 11:04pm
10
Using the comment by rg305:
I see:
16:00:30 ingber@linode# ~: apachectl -t -D DUMP_VHOSTS
VirtualHost configuration:
173.255.212.226:80 is a NameVirtualHost
default server www.ingber.com (/etc/apache2/sites-enabled/000-default.conf:8)
port 80 namevhost www.ingber.com (/etc/apache2/sites-enabled/000-default.conf:8)
alias ingber.com
alias www.ingber.com
port 80 namevhost creekhouse.ingber.com (/etc/apache2/sites-enabled/000-default.conf:22)
port 80 namevhost louise.ingber.com (/etc/apache2/sites-enabled/000-default.conf:35)
port 80 namevhost blog.ingber.com (/etc/apache2/sites-enabled/000-default.conf:48)
port 80 namevhost lester.ingber.com (/etc/apache2/sites-enabled/000-default.conf:61)
port 80 namevhost lin.ingber.com (/etc/apache2/sites-enabled/000-default.conf:74)
port 80 namevhost lin6.ingber.com (/etc/apache2/sites-enabled/000-default.conf:87)
173.255.212.226:443 is a NameVirtualHost
default server www.ingber.com (/etc/apache2/sites-enabled/default-ssl.conf:13)
port 443 namevhost www.ingber.com (/etc/apache2/sites-enabled/default-ssl.conf:13)
alias ingber.com
alias www.ingber.com
port 443 namevhost louise.ingber.com (/etc/apache2/sites-enabled/default-ssl.conf:52)
port 443 namevhost creekhouse.ingber.com (/etc/apache2/sites-enabled/default-ssl.conf:90)
port 443 namevhost blog.ingber.com (/etc/apache2/sites-enabled/default-ssl.conf:128)
port 443 namevhost lester.ingber.com (/etc/apache2/sites-enabled/default-ssl.conf:166)
port 443 namevhost lin.ingber.com (/etc/apache2/sites-enabled/default-ssl.conf:204)
port 443 namevhost lin6.ingber.com (/etc/apache2/sites-enabled/default-ssl.conf:242)
*:80 default.ingber.com (/etc/apache2/sites-enabled/000-default.conf:1)
*:443 default.ingber.com (/etc/apache2/sites-enabled/default-ssl.conf:2)
16:01:10 ingber@linode# ~:
rg305
August 24, 2024, 9:29am
11
We should have a look at this file:
And perhaps, also this file:
3 Likes
MikeMcQ:
(1) What should I be looking for in my .htaccess file?
(2) If the ordering is incorrect, as rg305 suggested, how would I fix that?
(3) Should I have to uninstall and reinstall Letsencrypt?
Thanks.
Lester
1 Like
Here details on Apache can be found in documentation and forums:
4 Likes
My /etc/apache2/sites-enabled files:
000-default.conf:
<VirtualHost _default_:80>
ServerName default.ingber.com
<Location />
Require all denied
</Location>
</VirtualHost>
#<VirtualHost 173.255.212.226:80 [2600:3c01::f03c:91ff:fe93:e6f3]:80>
<VirtualHost 173.255.212.226:80>
ServerName www.ingber.com
ServerAlias ingber.com www.ingber.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
</VirtualHost>
#<VirtualHost 173.255.212.226:80 [2600:3c01::f03c:91ff:fe93:e6f3]:80>
<VirtualHost 173.255.212.226:80>
ServerName creekhouse.ingber.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
</VirtualHost>
#<VirtualHost 173.255.212.226:80 [2600:3c01::f03c:91ff:fe93:e6f3]:80>
<VirtualHost 173.255.212.226:80>
ServerName louise.ingber.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
</VirtualHost>
#<VirtualHost 173.255.212.226:80 [2600:3c01::f03c:91ff:fe93:e6f3]:80>
<VirtualHost 173.255.212.226:80>
ServerName blog.ingber.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
</VirtualHost>
#<VirtualHost 173.255.212.226:80 [2600:3c01::f03c:91ff:fe93:e6f3]:80>
<VirtualHost 173.255.212.226:80>
ServerName lester.ingber.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
</VirtualHost>
#<VirtualHost 173.255.212.226:80 [2600:3c01::f03c:91ff:fe93:e6f3]:80>
<VirtualHost 173.255.212.226:80>
ServerName lin.ingber.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
</VirtualHost>
#<VirtualHost 173.255.212.226:80 [2600:3c01::f03c:91ff:fe93:e6f3]:80>
<VirtualHost 173.255.212.226:80>
ServerName lin6.ingber.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
default-ssl.conf:
<VirtualHost _default_:443>
ServerName default.ingber.com
<Location />
Require all denied
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
</VirtualHost>
#<VirtualHost 173.255.212.226:443 [2600:3c01::f03c:91ff:fe93:e6f3]:443>
<VirtualHost 173.255.212.226:443>
ServerName www.ingber.com
ServerAlias ingber.com www.ingber.com
ServerAdmin webmaster
DocumentRoot /var/www-ssl
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www-ssl/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Allow from 127.0.0.0/255.0.0.0 ::1/128
Require all denied
</Directory>
SSLEngine on
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.pem
# SSLCertificateFile /etc/ssl/cloudflare/ingber.com.crt
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.key
# SSLCertificateKeyFile /etc/ssl/cloudflare/origin-pull-ca.pem
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
# SSLCertificateFile /etc/certs/MyKey.key
# SSLCertificateKeyFile /etc/certs/MyCertificate.crt
SSLCertificateFile /etc/letsencrypt/live/www.ingber.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.ingber.com/privkey.pem
</VirtualHost>
#<VirtualHost 173.255.212.226:443 [2600:3c01::f03c:91ff:fe93:e6f3]:443>
<VirtualHost 173.255.212.226:443>
ServerName louise.ingber.com
ServerAdmin webmaster
DocumentRoot /var/www-ssl/louise
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www-ssl/louise/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Allow from 127.0.0.0/255.0.0.0 ::1/128
Require all denied
</Directory>
SSLEngine on
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.pem
# SSLCertificateFile /etc/ssl/cloudflare/ingber.com.crt
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.key
# SSLCertificateKeyFile /etc/ssl/cloudflare/origin-pull-ca.pem
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
# SSLCertificateFile /etc/certs/MyKey.key
# SSLCertificateKeyFile /etc/certs/MyCertificate.crt
SSLCertificateFile /etc/letsencrypt/live/www.ingber.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.ingber.com/privkey.pem
</VirtualHost>
#<VirtualHost 173.255.212.226:443 [2600:3c01::f03c:91ff:fe93:e6f3]:443>
<VirtualHost 173.255.212.226:443>
ServerName creekhouse.ingber.com
ServerAdmin webmaster
DocumentRoot /var/www-ssl/creekhouse
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www-ssl/creekhouse/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Allow from 127.0.0.0/255.0.0.0 ::1/128
Require all denied
</Directory>
SSLEngine on
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.pem
# SSLCertificateFile /etc/ssl/cloudflare/ingber.com.crt
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.key
# SSLCertificateKeyFile /etc/ssl/cloudflare/origin-pull-ca.pem
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
# SSLCertificateFile /etc/certs/MyKey.key
# SSLCertificateKeyFile /etc/certs/MyCertificate.crt
SSLCertificateFile /etc/letsencrypt/live/www.ingber.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.ingber.com/privkey.pem
</VirtualHost>
#<VirtualHost 173.255.212.226:443 [2600:3c01::f03c:91ff:fe93:e6f3]:443>
<VirtualHost 173.255.212.226:443>
ServerName blog.ingber.com
ServerAdmin webmaster
DocumentRoot /var/www-ssl/blog
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www-ssl/blog/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Allow from 127.0.0.0/255.0.0.0 ::1/128
Require all denied
</Directory>
SSLEngine on
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.pem
# SSLCertificateFile /etc/ssl/cloudflare/ingber.com.crt
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.key
# SSLCertificateKeyFile /etc/ssl/cloudflare/origin-pull-ca.pem
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
# SSLCertificateFile /etc/certs/MyKey.key
# SSLCertificateKeyFile /etc/certs/MyCertificate.crt
SSLCertificateFile /etc/letsencrypt/live/www.ingber.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.ingber.com/privkey.pem
</VirtualHost>
#<VirtualHost 173.255.212.226:443 [2600:3c01::f03c:91ff:fe93:e6f3]:443>
<VirtualHost 173.255.212.226:443>
ServerName lester.ingber.com
ServerAdmin webmaster
DocumentRoot /var/www-ssl/lester
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www-ssl/lester/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Allow from 127.0.0.0/255.0.0.0 ::1/128
Require all denied
</Directory>
SSLEngine on
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.pem
# SSLCertificateFile /etc/ssl/cloudflare/ingber.com.crt
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.key
# SSLCertificateKeyFile /etc/ssl/cloudflare/origin-pull-ca.pem
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
# SSLCertificateFile /etc/certs/MyKey.key
# SSLCertificateKeyFile /etc/certs/MyCertificate.crt
SSLCertificateFile /etc/letsencrypt/live/www.ingber.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.ingber.com/privkey.pem
</VirtualHost>
#<VirtualHost 173.255.212.226:443 [2600:3c01::f03c:91ff:fe93:e6f3]:443>
<VirtualHost 173.255.212.226:443>
ServerName lin.ingber.com
ServerAdmin webmaster
DocumentRoot /var/www-ssl/lin
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www-ssl/lin/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Allow from 127.0.0.0/255.0.0.0 ::1/128
Require all denied
</Directory>
SSLEngine on
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.pem
# SSLCertificateFile /etc/ssl/cloudflare/ingber.com.crt
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.key
# SSLCertificateKeyFile /etc/ssl/cloudflare/origin-pull-ca.pem
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
# SSLCertificateFile /etc/certs/MyKey.key
# SSLCertificateKeyFile /etc/certs/MyCertificate.crt
SSLCertificateFile /etc/letsencrypt/live/www.ingber.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.ingber.com/privkey.pem
</VirtualHost>
#<VirtualHost 173.255.212.226:443 [2600:3c01::f03c:91ff:fe93:e6f3]:443>
<VirtualHost 173.255.212.226:443>
ServerName lin6.ingber.com
ServerAdmin webmaster
DocumentRoot /var/www-ssl/lin6
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www-ssl/lin6/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined env=!dontlog
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Allow from 127.0.0.0/255.0.0.0 ::1/128
Require all denied
</Directory>
SSLEngine on
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.pem
# SSLCertificateFile /etc/ssl/cloudflare/ingber.com.crt
# SSLCertificateKeyFile /etc/ssl/cloudflare/ingber.com.key
# SSLCertificateKeyFile /etc/ssl/cloudflare/origin-pull-ca.pem
# <IfModule mod_cloudflare.c>
# DenyAllButCloudFlare
# </IfModule>
# SSLCertificateFile /etc/certs/MyKey.key
# SSLCertificateKeyFile /etc/certs/MyCertificate.crt
SSLCertificateFile /etc/letsencrypt/live/www.ingber.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.ingber.com/privkey.pem
</VirtualHost>
#</IfModule>
~
~
~
~
</VirtualHost>
1 Like
I minimized all entries to fit into this window. I may have cut off some entries, but I can download files fine.
Lester
Hello @lingber ,
Using the online tool Let's Debug yields these results https://letsdebug.net/ingber.com/2196497
UnexpectedHttpResponse
Warning
Sending an ACME HTTP validation request to ingber.com results in unexpected HTTP response 403 Forbidden. This indicates that the webserver is misconfigured or misbehaving.
403 Forbidden
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access this resource.Server unable to read htaccess file, denying access to be safe</p>
</body></html>
Trace:
@0ms: Making a request to http://ingber.com/.well-known/acme-challenge/letsdebug-test (using initial IP 173.255.212.226)
@0ms: Dialing 173.255.212.226
@345ms: Server response: HTTP 302 Found
@345ms: Received redirect to https://ingber.com/.well-known/acme-challenge/letsdebug-test
@345ms: Dialing 173.255.212.226
@859ms: Server response: HTTP 403 Forbidden
HTTP shows a redirect to HTTPS
And shows HTTP/1.1 302 Found ;
typically one more often would respond HTTP/1.1 301 Moved Permanently
$ curl -Ii http://ingber.com/.well-known/acme-challenge/sometestfile
HTTP/1.1 302 Found
Date: Sat, 24 Aug 2024 16:10:00 GMT
Server: Apache
Location: https://ingber.com/.well-known/acme-challenge/sometestfile
Content-Type: text/html; charset=iso-8859-1
HTTPS is still showing HTTP/1.1 403 Forbidden
$ curl -Ii https://ingber.com/.well-known/acme-challenge/sometestfile
HTTP/1.1 403 Forbidden
Date: Sat, 24 Aug 2024 16:10:12 GMT
Server: Apache
Content-Type: text/html; charset=iso-8859-1
4 Likes
Bruce5051:
I do not see any "Forbidden" entries in those files, or in .well-known?
I change permissions?
Lester
Here are a few links to help with Markdown
3 Likes
It may not be a permission but how the webserver is responding that might need correcting.
4 Likes
I would look in your Apache ErrorLog for further explanation of the 403
ErrorLog ${APACHE_LOG_DIR}/error.log
Has something changed with your network equipment lately? Because you have previously had problems with the syntax you use for VirtualHost. We have recommended you change that in the past. If your syntax is not working properly Apache will use your Default VirtualHost. Your Default VHost denies everything (with 403).
Note your Default VirtualHost does NOT use this IP:Port syntax like all your others.
Specifically, statements like this ...
Could (should) ALL be replaced with just
<VirtualHost *:443>
And same for your port 80 VHosts:
<VirtualHost *:80>
4 Likes