简体   繁体   中英

How to configure Apache ProxyPass and ProxyReverse for dotnet C# MVC routing in order to get exception for .well-known

I've a site in ASP.NET MVC Core 3.1 C# running over a Debian with Apache 2 trought a ProxyPass and ProxyReverse and a functional domain and SSL Let's Encrypt certificate with the following configuration in a site-com.conf file:

ProxyPreserveHost On
ProxyPass / https://localhost:1234/
ProxyPassReverse / https://localhost:1234/
ProxyPassMatch ^/.well-known !

So far so good, this works fine. But every time I need to update my certificates and I have to change the configuration to <Directory> in order the certbot can find the .well-know directory. This is not a problem but the site for this lapse is offline and I can't automate the process.

So I researched in Server Fault and Stack Overflow several solutions, nothing works. The more close solution is on this: Exclude an alias from virtualhost proxypass

But I can't manage to made it work. Last attempt with this configuration:

ProxyPreserveHost On
    ProxyPass / https://localhost:1234/
    ProxyPassReverse / https://localhost:1234/
 ProxyPassMatch ^/.well-known !



Alias /.well-known "/www/example.com/public_html/.well-known" 
<Directory "/www/example.com/public_html/.well-known" > 
               Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            Allow from all
 </Directory>

The url example.com/.well-known/acme-challenge/file is catched by the MVC Routing. I also created a index.html file to check the URL example.com/.well-known/acme-challenge/index.html but happens the same.

How can I configure this?

I'm testing the RegEx now meanwhile we talk, but IDK where to begin to fix this.
Yes, I restart and reload the server everytime I do a change.

If you need more information or settings from my conf file, please ask me for them in the config. Thanks in advance for tips and helps!

I finally success. There were two problems: 1) It works better with ProxyPass precedence AND the Allow was not correct.

For this configuration it works:

ProxyPreserveHost On
ProxyPass /.well-known !
ProxyPass / https://localhost:1234/
ProxyPassReverse / https://localhost:1234/


Alias /.well-known "/example.com/public_html/.well-known" 
<Directory "/example.com/public_html/.well-known" > 
Options FollowSymLinks
AllowOverride All
Require all granted
 </Directory>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM