после удаления "s" в конце "https" сайт просто перенаправляет меня на «www.example.com»
Удаление "s" вручную означает, что вы сами явно посещаете http://www.example.com
(т.е. не-SSL-версию).
Теперь, что происходит, большинство браузеров скрывают часть http://
в адресной строке для удобства чтения (http://
- просто беспорядок для большинства обычных пользователей). Так что он просто не отображает http://
перед URL, но на самом деле он все еще там.
Так что это на самом деле не перенаправляет вас никуда. На самом деле нет такой вещи, как перенаправление на www.example.com
без префикса протокола, такого как http://
. Если вы увидите www.example.com
в адресной строке и выберите все + копировать + вставить, вы увидите, что префикс http://
все еще там. И если вы www.example.com
вручную без какого-либо префикса протокола, ваш браузер автоматически примет неявный префикс http://
.
Что касается уязвимости: любой сайт, имеющий дело с конфиденциальной информацией (или, может быть, просто любой сайт в целом, в зависимости от того, насколько вы параноик) должен применять SSL, поэтому даже не поддерживает и не разрешает посещение через http://
, только https://
С момента появления Let's Encrypt каждый может бесплатно использовать SSL на своем веб-сайте. Так что, в принципе, нет причин больше не использовать SSL.
Лично я использую Let's Encrypt везде, на каждом веб-сайте, который я размещаю или управляю. И я удостоверяюсь, что любые посещения без SSL (т.е. всякий раз, когда кто-то посещает страницу с http://
вместо https://
) автоматически перенаправляются на соответствующий https://
URL.
Есть разные способы сделать это, но, вероятно, самый простой способ - поместить файл с именем .htaccess
в ваш public_html/
dir с таким содержимым:
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]
Что он делает, так это направляет любой запрос, который не использует SSL, на тот же URL с SSL.