Hallo zusammen, ich habe einen Web-Dienst, für den ich mit Apache als Reverse-Proxy SSL-Verbindungen forciere.
So sieht mein Virtueller Host dazu aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <VirtualHost *:80> ServerName mein.freedns.org # Umleitung auf https RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> <VirtualHost *:443> ServerName mein.freedns.org SSLEngine on SSLProxyEngine on SSLProxyVerify none SSLCertificateFile /opt/ssl/meincert.pem SSLCertificateKeyFile /opt/ssl/privatekey-meincert.pem ProxyRequests Off #ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyVia On ProxyPass / http://localhost:8070/ ProxyPassReverse / http://localhost:8070/ RequestHeader set “X-Forwarded-Proto” “https” SetEnv proxy-nokeepalive 1 </VirtualHost> |
Wenn ich nun die IP des Servers innerhalb meines LANs im Browser aufrufe, wird wie erwartet auf eine sichere Verbindung umgeleitet. Leider bekomme ich es nicht hin, dasselbe Verhalten zu forcieren, wenn ich "von außen" über meine FreeDNS Adresse auf den Dienst zugreifen möchte. Im Router ist dafür bereits ein Port-Forwarding eingerichtet - hierbei sind externer und interner Port unterschiedlich: Port 8888 leitet intern auf den Server auf 8070 um.
Wie bekomme ich aus mein.freedns.org:8888 eine SSL-Verbindung hin? Ich dachte, ich bräuchte nur noch oben zusätzlich zur *:80 die *.8888 hinzufügen (und dann noch in der ports.conf eine zusätzliche Listen-Direktive dazu), aber leider funktioniert der Zugriff so nicht. Ich bekomme dann, wenn ich https://mein.freedns.org:8888 aufrufe, im Browser einen Fehler mit "Fehlercode: SSL_ERROR_RX_RECORD_TOO_LONG". Kann hier jemand weiterhelfen, wie ich die Verbindung zum Laufen bekomme?