Как мне просто заставить весь сайт использовать безопасное соединение? [закрыто]

18

В Drupal 7 я использовал модуль безопасного входа для запуска сайта по безопасному соединению, но, похоже, он не возвращается к http при выходе из системы. Я хотел бы просто запустить весь сайт как https: // для упрощения.

Есть ли простой способ сделать это без использования модуля?

Пол Коннолли
источник
Сегодня я только что установил модуль Htaccess , изменил существующие настройки и развернул этот профиль. Кажется, работает отлично ...
Алексей Зубенко

Ответы:

8

Начните с чтения Включение HTTP Secure (HTTPS) . Пожалуйста, задавайте более конкретные вопросы и / или обновите свой вопрос, если это не поможет.

marcvangend
источник
35

Если вы хотите перенаправить все свои страницы, чтобы принудительно использовать SSL, добавьте это в свой .htaccessфайл.

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Это должно быть размещено сразу после, RewriteEngine on если у вас нет предыдущих переписываний.

стог
источник
1

Еще один удобный трюк, если у вас есть root-доступ к Apache для изменения ваших директив vhost, это добавить это в директиву SSL для сайта. Большинство современных браузеров подчиняются этой директиве (IE9 нет)

Header always set Strict-Transport-Security "max-age=63072000"

Вы можете установить возраст на все, что вы хотите. Это означает, что веб-браузеры, которые подчиняются этому, используют ТОЛЬКО протокол SSL для связи с вашим сайтом, а не простой HTTP. Это добавляет немного уверенности во всей ситуации переключения HTTP / HTTPS.

Это удобный хак.

ПРИМЕЧАНИЕ. Это будет работать только в том случае, если на вашем сайте есть действительный SSL-сертификат (не самоподписанный, с истекшим сроком действия или иным образом неверный). Если вы этого не сделаете, браузер не сможет подключиться к нему, пока не истечет максимальный срок.

Brady
источник
0

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

Во-первых, в вашем .htaccess:

RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^www\.yourdomainhere\.com*
RewriteRule ^(.*)$ https://www.yourdomainhere.com/ [L,R=301]

Это должно быть добавлено после:

RewriteEngine on

Затем в вашем файле settings.php:

$base_url = 'https://www.yourdomainhere.com'; 

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

Надеюсь это поможет.

Karolus
источник
-2

Есть и другое решение, которое заключается в простом добавлении $ _SERVER ['HTTPS'] = 'On'; в файле settings.php

Подробнее на https://www.drupal.org/https-information#comment-9901783

Однако, похоже, что метод htaccess перенаправляет независимо, тогда как файл settings.php требует очистки кэша браузера.

Стив
источник
2
Не кажется, чтобы сделать трюк сам по себе. Пришлось очистить кеши друпалов, но, несмотря на то, что страницы друпалов служили https, такие ресурсы, как изображения, не были. Они были загружены, но браузер предупреждал об этом (в консоли), и на значке замка было предупреждение. Мне пришлось добавить директиву htaccess из ответа Рика, чтобы получить правильный значок блокировки.
обычная щука