Сейчас все больше и больше сайтов переходят на работу по HTTPS. Это связано с установкой на домен сайта SSL-сертификатов: если для работы с сайтом должен использоваться протокол HTTPS, после установки сертификата производится настройка защищенного соединения для всех элементов и страниц сайта. Однако если сама установка сертификата занимает не более нескольких минут и понятна даже неискушенному пользователю, то при смене протокола нередко возникают вопросы. Поэтому в этой статье вы узнаете, как легко и просто перевести свой сайт с HTTP на HTTPS.
В первую очередь осуществляется переадресация сайта на защищенный протокол HTTPS. Переадресация с протокола HTTP на протокол HTTPS реализуется добавлением в файл .htaccess следующих директив:
RewriteEngine on
RewriteCond %{HTTP:HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://yourdomain.com/$1 [R=301,L]
SetEnvIf X-Forwarded-Proto https HTTPS=on
где "yourdomain.com" - имя домена, для которого используется сертификат.
Также производится проверка всех ссылок на сайте на предмет явного использования протокола HTTP. При наличии элементов, открывающихся по небезопасному протоколу, соединение будет считаться недосверенным, и информация об этом отобразится в адресной строке. Проверить страницы сайта можно с помощью сервиса https://www.whynopadlock.com/.
При наличии элементов, доступных только по протоколу HTTP, ссылки на них меняются на относительные (к примеру, вместо http://yourdomain.com/content/pic.jpg в коде страницы ссылка должна иметь вид /content/pic.jpg), либо явно указывается использование протокола HTTPS (в таком случае ссылка будет иметь вид https://yourdomain.com/content/pic.jpg).
Также меняются ссылки для элементов, загружаемых с внешних ресурсов. Например, если на сайте используется скрипт, доступный по адресу http://externaldomain.us/scripts/ad.js, эта ссылка должна быть изменена на //externaldomain.us/scripts/ad.js или https://externaldomain.us/scripts/ad.js. Обратите внимание, что сайт, на котором расположен элемент, также должен иметь валидный SSL-сертификат.
Настройка известных CMS для работы по HTTPS
Помимо ссылок, которые явным образом указываются в коде страницы, существуют особенности при переводе различных CMS на защищенный протокол:
1. Joomla!
В конфигурационном файле (configuration.php) строка public $live_site =''"; заменяется на следующую public $live_site = 'https://www.yourdomain.com'; где "yourdomain.com" - имя домена. Также вместо строки public $force_ssl = '0'; используется: public $force_ssl = '1';.
В Joomla! 3.x. Русская версия для проверки работы сайта по протоколу HTTPS до указания в файле /public_html/.htaccess рекомендуемых в данной статье директив, можно внести изменения в файл /public_html/libraries/joomla/uri/uri.php, заменив строку if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS'])!= 'off')) на if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https').
Обращаем внимание, что указанные действия производятся уже после установки сертификата на домен, иначе они могут привести к неработоспособности сайта!
2. Wordpress
В административной панели Wordpress производится смена протокола в адресе сайта. В конфигурационном файле (wp-config.php) добавляется следующая строка define('FORCE_SSL_ADMIN', true);
3. Bitrix
Работа сайта включается в административной панели сайта с использованием безопасного соединения https.
4. Drupal
В конфигурационном файле (/sites/default/settings.php) добавляется следующая директива $conf['https'] = TRUE; Также, для удобства настройки безопасного доступа к авторизованным разделам сайта рекомендуем установить модули "Auth SSL Redirect" и "Secure Login".
5. MODX
Для расширенной настройки доступа к сайту по защищенному протоколу рекомендуем установить модуль "SSL 1.0.0-ga". При использовании MODX Revolution для настройки работы сайта по https вносятся следующие изменения в конфигурационный файл core/config/config.inc.php:
if (!defined('MODX_URL_SCHEME')) {
$url_scheme= $isSecureRequest ? 'https://' : 'http://';
заменить на:
if (!defined('MODX_URL_SCHEME')) {
$url_scheme= 'https://';
После внесения изменений очищается кэш MODX.
Как указать поисковым системам, что сайт является защищенным?
Компания Google рассматривает использование HTTPS на сайте в качестве фактора ранжирования. Для корректного индексирования сайта по протоколу HTTPS компания Google рекомендует соблюдать следующие правила:
Перенаправляйте пользователей и поисковые системы на страницу HTTPS или ресурс с переадресацией 301 на стороне сервера для адресов HTTP.
Используйте относительные URL для ресурсов, которые находятся на одном защищенном домене. Например, для перехода на страницу на вашем сайте example.com, использовать a href="/about/ourCompany.php" предпочтительнее, чем a href="https://example.com/about/ourCompany.php" . Это гарантирует, что ваши ссылки и ресурсы всегда будут использовать HTTPS. За счет этого также уменьшается вероятность ошибок в локальном развитии сайта, так как изображения, страницы и другие ресурсы загружаются из локальной среды разработки, а не из производственной среды.
Используйте схожие по протоколам URL-адреса для всех остальных доменов (например, //petstore.example.com/dogs/biscuits.php), или обновите ссылки своего сайта для перехода непосредственно на ресурс HTTPS.