I have a http service running on 10.1.1.187:8080.
This is delivered as a public https service to https://public.example.com which is 10.1.1.186:443 via apache proxy magic:
<VirtualHost 10.1.1.186:443> ServerName public.example.com #Configure Reverse Proxy ProxyRequests Off ProxyPreserveHost On <Location /> ProxyPass http://10.1.1.187:8080/ ProxyPassReverse http://10.1.1.187:8080/ Order allow,deny Allow from all </Location> #Define Virtual Host Specific SSL information. SSLEngine On SSLProxyEngine On SSLProxyProtocol all -SSLv2 SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key </VirtualHost>
When I enter https://public.example.com in my browser and click through the certificate, I can get the first page which contains a login form:
<form action="http://public.example.com/login" method="post"> <-- ... contains username, password fields and a send button --> </form>
So the action target was very nice rewritten. But the http should read https. How to do that?
It would be nice if the link was changed in the form action tag, pointing to the correct https page already, rather using a second http virtual host with a rewrite condition.
This is the additional part that solved it (I put it in the vhost but outside the Location container):