.png)
После недавнего обновления Ubuntu мои локальные веб-сайты больше не обслуживают свои страницы через SSL. Например, мой файл .htaccess пытается гарантировать, что /sign-in всегда обслуживается через HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /sign-in
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,R=301]
Однако когда я делаю запрос на /sign-in на домене site2-local, я получаю ошибку «Страница не перенаправляется должным образом» со следующим текстом:/var/log/apache2/error.log
[Tue Jun 08 12:20:57 2010] [info] [client 127.0.1.1] Connection to child 0 established (server site1-local:443)
[Tue Jun 08 12:20:57 2010] [info] Seeding PRNG with 656 bytes of entropy
[Tue Jun 08 12:20:57 2010] [info] Initial (No.1) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.2) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.3) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.4) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.5) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.6) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.7) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.8) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.9) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.10) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:21:12 2010] [info] [client 127.0.1.1] (70007)The timeout specified has expired: SSL input filter read failed.
[Tue Jun 08 12:21:12 2010] [info] [client 127.0.1.1] Connection closed to child 0 with standard shutdown (server site2-local:443)
Существует соединение с site1-local (другой сайт на моем компьютере, который использует тот же сертификат), которое я не понимаю.
Кто-нибудь знает, в чем причина этой проблемы?
решение1
Я не знаю, что является причиной этой проблемы, но я сам некоторое время назад столкнулся с ней и нашел обходной путь, используя другую переменную для обнаружения https-запросов.
Вы можете использовать один из вариантов %{SERVER_PORT}
или %{SERVER_PROTOCOL}
.
Также это может быть проблема с заглавными буквами. %{HTTPS}
вполне может быть «Выкл.», а не «выкл.».
В моем SSL VirtualHosts у меня есть SetEnv HTTPS on
решение другой проблемы, которая у меня была, но должно решить и вашу проблему. Конечной причиной, которая потребовала этого решения, было то, что переменная %{HTTPS}
не была установлена правильно. Если ваша %{HTTPS}
переменная не была установлена, ее ручная установка должна решить проблему.
решение2
Я думаю, что HTTPS не всегда может быть установлен, когда SSL не включен. Так что тестирование порта действительно было бы хорошим решением (%{SERVER_PORT})
решение3
Давайте сначала удостоверимся, прослушивает ли Apache порт https:
lsof -i:443
если вы не обнаружили никаких выходных данных, то проблема связана с модулем SSL, а не с правилом перезаписи, тем более, что вы утверждаете, что это же правило работало правильно до обновления.
Также проверьте, что при запуске apache2ctl -t
не возникает ошибок или предупреждений.