
Я использую Apache 2.4.29 в Ubuntu 18.04 и у меня есть следующие настройки в 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 работает как прокси для сервера tomcat, оба с SSL. Если я использую url с https, apache работает хорошо, но когда я пытаюсь использовать http, я не могу быть перенаправлен на https. Я проверил, и похоже, что apache не слушает или не обрабатывает соединения с порта 80 (я также проверил с telnet)
Если я удалю настройки SSL и оставлю один виртуальный хост на порту 80, я смогу работать без SSL, который отлично работает на порту 80, но когда я включу только SSL, я смогу использовать сервер с https
Есть ли способ использовать http и быть перенаправленным на https?
решение1
Я нашел проблему: у меня была маршрутизация в IPTABLES, которая отправляла трафик с порта 80 на 8080.