I have a custom server running behind an apache reverse proxy. Since the custom server can only handle HTTP traffic, i am trying to use apache for wrapping proper SSL around it, and for some kind of HTTP authentication.
So i enabled mod_proxy and mod_ssl and modified sites-available/default-ssl. The config is as following:
<Location /server>
order deny,allow
allow from all
AuthType Basic
AuthName "Please log in"
AuthUserFile /etc/apache2/htpasswd
Require valid-user
ProxyPass http://192.168.1.102:8181/server
ProxyPassReverse http://192.168.1.102:8181/server
</Location>
The custom server is accessible from the internal network via the location specified in the ProxyPass directive.
However, when the proxy is accessed from the outside, it presents the login prompt, and after successfully authenticated, i get a blank page with the words The resource can be found at http://192.168.1.102:8181/server
. When i type the external URL again in an already authenticated browser instance, i am properly redirected to the server frontend.
The access.log is full of entrys stating that my browser does successful GET requests, and the proxy is happily serving the /server ressource. However, the ressource isn't containing the server's frontend, but this blank page with these words on it.
After some investigation it was clear to me that only Google Chrome shows this behaviour. Safar and Firefox were redirecting fine. Since i didn't suppose that Google built its browser with such a "feature" and the others didn't, i checked my extensions. And: I had one extension called "HTTPS Everywhere" installed. This was the point. After disabling this extension, everything works as desired.