@targetologru

Почему после перезда на http браузеры все равно пытаются открыть https?

Домен делегирован на Яндекс. Были прописаны А-записи на "Хостинг1". Этот хостинг давал бесплатный SSL, и в принципе там было норм. Вчера я решил переехать на другой хостинг, и поменял А-записи на "Хостинг2". Там уже нет SSL-сертификата, я настроил переадресацию через htaccess на http.

Но сайт открывается только в режиме инкогнито ФФ. В опере, ФФ обычном, в хроме, с телефона — везде пытается открыть на https и выдает ошибку. Кэш чистил, не помогает.

Или это прикол такой, что сам сайт делегировался на Хостинг2, а то, что там SSL отпал это дольше как-то делегируется или как оно все работает и почему так?

Я думал, проблема в htaccess, но вот даже такая конструкция не работает:
RewriteCond %{HTTPS} On
RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI}
RewriteCond %{HTTP:X-Forwarded-Protocol} =https 
RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteCond %{ENV:HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  • Вопрос задан
  • 701 просмотр
Решения вопроса 1
@bkosun
Но сайт открывается только в режиме инкогнито ФФ. В опере, ФФ обычном, в хроме, с телефона — везде пытается открыть на https и выдает ошибку. Кэш чистил, не помогает.


Проверьте редиректы и ответ сервера с помощью любого стороннего сервиса, например:

https://httpstatus.io/

Скорее всего, на первом сервере использовался HSTS?


Как ведет себя браузер

При первом доступе к сайту с помощью HTTPS и возврате Strict-Transport-Security заголовка, браузер сохраняет эту информацию, чтобы в дальнейшем при загрузке сайта через HTTP тот автоматически использовал HTTPS.

Когда время истечения, заданное Strict-Transport-Security заголовком, заканчивается, следующая попытка загрузки сайта с помощью HTTP будет воспринята, как обычная без автоматического использования HTTPS.

Каждый раз, когда браузер получает Strict-Transport-Security заголовок, он обновляет время истечения этого сайта, так что сайт может обновлять эту информацию и предотвратить его завершение. Если необходимо отключить Strict-Transport-Security, установите max-age в 0 (через https соединение) и тот моментально завершит Strict-Transport-Security заголовок, открывая доступ через http.


https://developer.mozilla.org/ru/docs/Web/HTTP/%D0...

Отключить HSTS на сервере можно примерно так:

Nginx:
server {
...
add_header Strict-Transport-Security "max-age=0; includeSubDomains; preload";
}


Apache (.htaccess):
<IfModule mod_headers.c>
...
Header set Strict-Transport-Security "max-age=0; includeSubDomains; preload" env=HTTPS
</IfModule>


Проверка статуса:
https://hstspreload.org/

Настройки браузера:
https://www.google.com/?q=How%20to%20clear%20hsts%...

Бесплатный SSL сертификат:
https://letsencrypt.org/ru/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы