3

I have a reverse proxy setup in Debian 8.2 (Jessie) with Apache 2.4.10-10+deb8u where I have two separate virtual hosts, one for http and another for https, based on the following config:

<IfDefine IgnoreBlockComment>
<VirtualHost *:80>
CustomLog /tmp/just_size.log just_size
        DocumentRoot /var/www/
        ServerName XXXXXXXXXX
        TraceEnable off
        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} ^TRACE
        RewriteRule .* - [F]
        ExpiresActive On
        ExpiresByType image/gif "access  plus 1 year"
        ExpiresByType image/jpeg "access  plus 1 year"
        ExpiresByType image/png "access  plus 1 year"
        ExpiresByType audio/mpeg "access  plus 1 year"
        ExpiresByType video/mpeg "access  plus 1 year"
        ExpiresByType text/html "modification plus 5 minutes"
        CustomLog /dev/null combined env=!no-registrar
        ProxyPreserveHost On
        CustomLog /tmp/non_https.log non_https
        ProxyPass /telemetria-ws/  http://10.1.0.116:8080/telemetria-ws/
        ProxyPassReverse /telemetria-ws/  http://10.1.0.116:8080/telemetria-ws/

        ProxyTimeout 1200
    ProxyPass /ecobox-ws/  http://10.1.0.116:8080/ecobox-ws/
        ProxyPassReverse /ecobox-ws/ http://10.1.0.116:8080/ecobox-ws/


        ProxyPass / http://10.1.0.116:8080/WebService/ connectiontimeout=300 timeout=300 KeepAlive=On retry=1 acquire=3000
        ProxyPassReverse / http://10.1.0.116:8080/WebService/
        ProxySet "http://10.1.0.116:8080/WebService/" connectiontimeout=300 timeout=300


        FileETag MTime Size
        Header append X-Frame-Options "DENY"
</VirtualHost>
</IfDefine>

<VirtualHost *:443>
CustomLog /tmp/just_size.log just_size
        ServerName XXXXXXX
        DocumentRoot /var/www
        DirectoryIndex index.php index.html
        TraceEnable off

        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} ^TRACE
        RewriteRule .* - [F]
        #RequestHeader set Front-End-Https "On"

        CustomLog /dev/null combined env=!no-registrar

        ProxyPreserveHost On
        RequestHeader set x-forwarded-server "https://XXXXXXX/"
        RequestHeader set x-forwarded-host "https://XXXXXXX/"
        SSLEngine On
        SSLCertificateKeyFile /etc/apache2/ssl/cert.key
        SSLCertificateFile /etc/apache2/ssl/cert.crt
        SSLCertificateChainFile /etc/apache2/ssl/gd_bundle-g2-g1.crt
        ProxyPass /telemetria-ws/  http://10.1.0.116:8080/telemetria-ws/
        ProxyPassReverse /telemetria-ws/  http://10.1.0.116:8080/telemetria-ws/

        ProxyTimeout 1200


        ProxyPass /TrackViewRealTime/  http://10.1.0.235:8080/TrackViewRealTime/
        ProxyPassReverse /TrackViewRealTime/  http://10.1.0.235:8080/TrackViewRealTime/

        ProxyPass /TrackViewLogin/  http://10.1.0.235:8080/TrackViewLogin/
        ProxyPassReverse /TrackViewLogin/  http://10.1.0.235:8080/TrackViewLogin/

        ProxyPass /TrackViewData/  http://10.1.0.235:8080/TrackViewData/
        ProxyPassReverse /TrackViewData/  http://10.1.0.235:8080/TrackViewData/

    ProxyPass /ecobox-ws/  http://10.1.0.116:8080/ecobox-ws/
        ProxyPassReverse /ecobox-ws/ http://10.1.0.116:8080/ecobox-ws/

                ProxyPass /puerto-coronel-ws/  http://10.1.0.116:8080/puerto-coronel-ws/
        ProxyPassReverse /puerto-coronel-ws/  http://10.1.0.116:8080/puerto-coronel-ws/


ProxyPass / http://10.1.0.116:8080/WebService/ connectiontimeout=300 timeout=300 KeepAlive=On retry=1 acquire=3000
        ProxyPassReverse / http://10.1.0.116:8080/WebService/
        ProxySet "http://10.1.0.116:8080/WebService/" connectiontimeout=300 timeout=300

        FileETag MTime Size
        Header append X-Frame-Options "DENY"
</VirtualHost>

I have several web services (and their WSDL) exposed from the internal IP 10.1.0.116 as you may see in the Proxy* config directives, the problem is that I haven't been able to redirect incoming plain http traffic into those web services, and they are only working using https, so I guess there must be something wrong with my VirtualHost config at port 80.

Even stranger is that when the request URL is like:

http://HOST/telemetria-ws/frioChileTempService/

I do get a response*, but an empty one with the following Response headers:

Response headers

*Response seems to be HTTPS as valid certificates appear in the SOAP-UI SSL Info

But when I add the port 80 to the URL (which should be the same as above):

http://HOST:80/telemetria-ws/frioChileTempService/

The server interprets it as SSL but using a plaintext connection:

Wed Feb 22 10:52:21 ART 2017:ERROR:javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?

Where can I be having the mismatched config? The desired would be to redirect plain http to https, but don't exactly understand what could be happening.

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.