
Ich verwende Apache 2.4.29 unter Ubuntu 18.04 und habe das folgende Setup in 000-default.conf
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error_ssl.log
CustomLog ${APACHE_LOG_DIR}/access_ssl.log combined
SSLEngine on
SSLProxyEngine On
SSLCertificateKeyFile /pathtokey/privkey.pem
SSLCertificateChainFile /pathtokey/chain.pem
SSLCertificateFile /pathtokey/fullchain.pem
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / https://localhost:8443/
ProxyPassReverse / https://localhost:8443/
#ErrorLog ${APACHE_LOG_DIR}/error.log
#CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Apache arbeitet als Proxy für einen Tomcat-Server, beide mit SSL. Wenn ich die URL mit https verwende, funktioniert Apache gut, aber wenn ich versuche, http zu verwenden, werde ich nicht zu https umgeleitet. Ich habe es überprüft und es scheint, dass Apache nicht zuhört oder Verbindungen von Port 80 verarbeitet (ich habe es auch mit Telnet überprüft).
Wenn ich die SSL-Einstellungen entferne und einen virtuellen Host in Port 80 behalte, kann ich ohne SSL arbeiten. Das funktioniert in Port 80 einwandfrei. Wenn ich jedoch nur SSL aktiviere, kann ich den Server mit https verwenden.
Gibt es eine Möglichkeit, http zu verwenden und zu https weitergeleitet zu werden?
Antwort1
Ich habe das Problem gefunden: Ich hatte ein Routing in IPTABLES, das den Verkehr von Port 80 an 8080 schickte