Вопрос: Как перенаправить с HTTPS на HTTP до ошибки сервера?


Я использовал веб-сайт с сертификатом SSL, но прекратил использование SSL-сертификата. Проблема в том, что большинство внешних ссылок на сайт используют префикс https: //.

Я пробовал https: // to http: // перенаправить файл .htaccess:

RewriteEngine On

RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}

Но, как уже указывалось в другом месте, кажется, что сервер пытается получить сертификат перед активацией перенаправления. Следовательно, перед тем, как перенаправление будет достигнуто, будет показана ошибка. Ошибка - это либо предупреждение о том, что срок действия сертификата истек, либо я удаляю запрос на подпись сертификата, а затем ошибку, полученную SSL, которая превысила максимально допустимую длину.

Есть ли способ разрешить перенаправление входящих ссылок должным образом?


10
2017-09-16 20:30


Источник


SSL обсуждается до того, как будут выполнены какие-либо HTTP-запросы, как я думаю, вы выяснили. Я думаю, что у вас будет проблема с тем, чтобы это работало так, как вы хотите, но я голосую, чтобы перейти на ServerFault.com, если у кого-то есть лучший ответ. - Michael
Кажется, что это может быть трудно достигнуть. Это настоящий облом, чтобы потерять ссылки, созданные в Интернете, и, что еще хуже, посетители считают, что сайт был скомпрометирован или исчез.


Ответы:


Разница между http и https заключается в том, что https-запросы отправляются через соединение ssl-encrypted. Зашифрованное соединение ssl должно устанавливаться между браузером и сервером до того, как браузер отправит HTTP-запрос.

Запросы Https на самом деле являются HTTP-запросами, которые отправляются через зашифрованное соединение ssl. Если сервер отказывается устанавливать шифрованное соединение ssl, браузер не будет иметь связи для отправки запроса. Браузер и сервер не смогут разговаривать друг с другом. Браузер не сможет отправить URL-адрес, к которому он хочет получить доступ, и сервер не сможет ответить перенаправлением на другой URL-адрес.

Так что это невозможно. Если вы хотите отвечать на https-ссылки, вам нужен сертификат ssl.


12
2017-09-16 20:49





Нет, если бы можно было перенаправить с https на http без реального сертификата, это было бы серьезным недостатком безопасности.

Подумайте, что преступник как-то может сделать сервер защищенным сервером перенаправленным на небезопасное соединение, не требуя реального сертификата https для сайта, это позволит преступнику захватить соединение, если пользователь не узнает об этом.

Единственное решение, которое я вижу, - получить дешевый сертификат, а затем сделать обычную переадресацию с сайта HTTPS (который пользователь не может получить без действительного сертификата) на обычный сайт для этих внешних ссылок.


2
2017-09-16 20:34



Правильно, так лучше. Жаль, что в качестве владельца сайта не существует способа настроить одобренное переопределение.


Вы должны создать в своем .htaccess

ErrorDocument 500 http://anotherserer.com/errorPage.php

0
2017-09-16 20:33



Спасибо за предложение. Даже при этом в .htaccess он не использует страницу, которую я вводил для ошибки 500 для этой конкретной ошибки. Кажется, что, возможно, ничего из .htaccess не активируется из-за начальной ошибки.