5

While trying to get the Let's Encrypt Certbot to work on a local server that hosts reverse-proxied content, I am unable to get the local exception working inside a Location block. httpd.conf snippet:

SSLProxyEngine on
<Location "/">
    ProxyPass "https://internal.host/"
    ProxyPassReverse "https://internal.host/"
</Location>
Include /etc/apache2/vhosts.d/01_acme.include

Placing the 01_acme.include file above or below the Location block has no effect.

The 01_acme.include file:

<Location /.well-known/acme-challenge/>
    ProxyPass "!"
    Alias /run/acme/.well-known/acme-challenge
</Location>

I have placed a single text file in that directory named date. Attempting to retrieve this file results in an endless 301 redirect to date/index.html/index.html/... until the redirect limit of the client is reached. The logs show this is generated on the front-end server, the back-end never receives a request.

If I replace the Location block with standalone directives, it functions as expected:

Alias /.well-known/acme-challenge /run/acme/.well-known/acme-challenge
ProxyPass /.well-known/acme-challenge !

According to the ProxyPass documentation this method of defining an exception should work - it conforms very well with the provided sample configuration towards the end of that section. Is this just broken, or have I missed something?

The redirects may be the root cause, but I can't find any redirect or rewrite directives in this scope that could be throwing a 301, and the only mention of index.html in .htaccess (there isn't one) or configuration files is the directory index, which I've tried explicitly disabling with Options -Indexes to no effect.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.