bg-tutorials

Как установить SSL-сертификат на WordPress Multisite

В этом руководстве вы узнаете, как установить SSL-сертификат на WordPress Multisite. Здесь есть две части: установка сертификата на уровне сервера (тип зависит от того, использует ли ваша сеть подкаталоги, поддомены или отдельные домены), а затем принудительное включение HTTPS для всей сети изнутри WordPress.

Какой SSL-сертификат нужен вашей Multisite-сети?

WordPress Multisite — это встроенная функция WordPress, которая позволяет создавать и управлять несколькими сайтами из одной установки и панели управления. Вы можете настроить сеть по одной из трех схем: подкаталоги, поддомены или отдельные домены. Именно схема определяет, какой сертификат вам нужен, поскольку каждая из них по-разному защищает имена хостов. Если вы не уверены, какой сертификат подходит для вашей конфигурации, воспользуйтесь нашим SSL Wizard, чтобы найти подходящий продукт для вашего проекта и бюджета.

Multisite в виде подкаталогов

Подкаталог (также называемый подпапкой) — это путь внутри одного домена. Например:

  • yoursite.com/blog
  • yoursite.com/store
  • yoursite.com/membership

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

Multisite в виде поддоменов

Поддомен — это раздел, расположенный перед корневым доменом. Поддомены — это практичный способ разделения частей сети. Например:

  • blog.yoursite.com
  • store.yoursite.com
  • membership.yoursite.com

Для сети, работающей на поддоменах, подходящим вариантом является Wildcard SSL-сертификат. Wildcard защищает корневой домен и неограниченное количество поддоменов первого уровня под ним — все в рамках одного сертификата. Вы можете добавлять новые субсайты в любое время, и они будут защищены без переоформления сертификата.

Примечание: Wildcard покрывает только один уровень поддоменов. Сертификат для *.yoursite.com защищает blog.yoursite.com, но не shop.blog.yoursite.com. Если ваша сеть использует поддомены такой глубины вложенности, спланируйте защиту этого уровня отдельно.

Multisite с разными доменами

Если вы хотите, чтобы каждый субсайт использовал собственный пользовательский домен, сначала нужно выполнить сопоставление доменов (domain mapping). Начиная с версии 4.5 сопоставление доменов встроено в ядро WordPress, поэтому отдельный плагин для этого больше не требуется. Вы сопоставляете домен, редактируя субсайт в разделе Network Admin > Sites > Edit и указывая в поле Site Address (URL) пользовательский домен (ваши DNS и сервер уже должны указывать на сеть для этого домена).

После сопоставления доменов защитите их с помощью мультидоменного SSL-сертификата. Мультидоменный сертификат (также называемый SAN-сертификатом) по умолчанию охватывает несколько не связанных между собой доменов и позволяет по запросу добавлять дополнительные альтернативные имена субъекта (Subject Alternative Names), поэтому один сертификат и одно продление защищают всю сеть. Серверы, размещающие несколько HTTPS-сайтов на одном IP-адресе, используют SNI (Server Name Indication), чтобы предъявлять правильный сертификат для каждого имени хоста, и эту технологию поддерживают все современные браузеры и серверы.

Установка сертификата на сервере

WordPress сам по себе не устанавливает сертификат. Вы устанавливаете его на сервере или хостинге, где размещена сеть, а затем переключаете WordPress на HTTPS. Точные шаги зависят от вашей среды:

  • Управляемый или общий хостинг: загрузите или вставьте сертификат, приватный ключ и цепочку центра сертификации (CA bundle) в панели управления (cPanel, Plesk или в разделе SSL/TLS вашего хостинга). Многие управляемые хостинги WordPress устанавливают и продлевают сертификаты за вас.
  • Apache: укажите в директивах SSLCertificateFile и SSLCertificateKeyFile путь к вашему полному сертификату (full-chain) и ключу внутри блока VirtualHost для порта 443. Точные директивы смотрите в наших руководствах по установке.
  • Nginx: задайте ssl_certificate (полную цепочку) и ssl_certificate_key в блоке server, который слушает порт 443.

Нужен сертификат для начала? Сгенерируйте запрос с помощью нашего CSR Generator или воспользуйтесь пошаговым руководством по CSR для вашей платформы. После того как удостоверяющий центр выпустит файлы и вы их установите, убедитесь, что сертификат работает, с помощью нашего SSL Checker, прежде чем продолжать.

Включение HTTPS для всей сети Multisite

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

Шаг 1: Обновите адреса сайта и главной страницы на https

В разделе Network Admin > Sites откройте каждый субсайт, перейдите на вкладку Settings и измените значения Siteurl и Home с http на https. Для главного сайта это также можно сделать в его собственном разделе Settings > General (поля WordPress Address и Site Address). После редактирования сохраните каждый сайт.

Шаг 2: Принудительно включите HTTPS для админ-панели и входа в систему

Отредактируйте файл wp-config.php в корне сети и добавьте эту строку над комментарием /* That’s all, stop editing! Happy publishing. */:

define( 'FORCE_SSL_ADMIN', true );

Это направляет каждую сессию входа в систему и администрирования по HTTPS во всей сети. Добавляйте эту строку только после того, как сертификат уже работает на сервере, иначе панель администратора может стать недоступной.

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

if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && strpos( $_SERVER['HTTP_X_FORWARDED_PROTO'], 'https' ) !== false ) {
    $_SERVER['HTTPS'] = 'on';
}

Шаг 3: Замените жестко заданные http-адреса в базе данных

Существующие записи, меню и настройки часто содержат полные http-ссылки. Выполните поиск и замену, чтобы преобразовать их в https. Самый безопасный инструмент — WP-CLI, который корректно обрабатывает сериализованные данные и может применяться ко всей сети:

wp search-replace 'http://yoursite.com' 'https://yoursite.com' --network --skip-columns=guid --dry-run

Изучите результат пробного запуска, затем выполните команду еще раз без параметра —dry-run, чтобы применить изменения. Повторите это для каждого отдельного домена в сети, использующей отдельные сайты или сайты на поддоменах. Если у вас нет доступа к WP-CLI, поддерживаемый плагин, такой как Better Search Replace, выполняет ту же задачу из панели управления. Не трогайте столбец guid, поскольку его изменение может повлиять на RSS-читалки.

Шаг 4: Проверьте и (по желанию) настройте редирект

Загрузите каждый сайт и убедитесь, что значок замка отображается без предупреждений о смешанном содержимом в консоли браузера. Плагин для принудительного HTTPS, например Really Simple SSL (который поддерживает Multisite), может обнаружить оставшиеся небезопасные запросы и настроить за вас редирект с HTTP на HTTPS. Вы также можете настроить редирект на уровне сервера в конфигурации Apache или Nginx. Полное руководство по переходу сайта на HTTPS смотрите в нашей статье о переходе с HTTP на HTTPS.

Теперь ваша сеть WordPress Multisite обслуживает все сайты по HTTPS.

Часто задаваемые вопросы

Какой SSL-сертификат нужен для WordPress Multisite?

Это зависит от схемы сети. Сети на подкаталогах нужен один стандартный сертификат для одного домена. Сети на поддоменах нужен Wildcard-сертификат, покрывающий корневой домен и его поддомены. Сети из отдельных (сопоставленных) доменов нужен мультидоменный (SAN) сертификат, в котором перечислен каждый домен.

Может ли один SSL-сертификат защитить всю сеть Multisite?

Да, при условии что тип сертификата соответствует схеме сети. Один стандартный сертификат покрывает сеть на подкаталогах, один Wildcard-сертификат покрывает сеть на поддоменах, а один мультидоменный сертификат покрывает сеть из отдельных доменов, перечисляя каждый домен как SAN.

Устанавливать сертификат в WordPress или на сервере?

На сервере. Сертификат, приватный ключ и цепочку центра сертификации устанавливают через панель управления хостинга или напрямую в Apache или Nginx. Самому WordPress нужно только переключить URL-адреса сайтов на https и добавить настройку FORCE_SSL_ADMIN в wp-config.php после того, как сертификат заработает.

Как принудительно включить HTTPS на сети WordPress Multisite?

Обновите значения Siteurl и Home на https для каждого сайта в разделе Network Admin > Sites, добавьте define( 'FORCE_SSL_ADMIN', true ); в wp-config.php и выполните поиск и замену, чтобы преобразовать все жестко заданные http-ссылки в базе данных. Плагин для принудительного HTTPS с поддержкой Multisite может добавить редирект и обнаружить оставшийся смешанный контент.

Нужен ли мне по-прежнему плагин сопоставления доменов для Multisite?

Нет. Сопоставление доменов является частью ядра WordPress начиная с версии 4.5. Вы сопоставляете пользовательский домен, редактируя поле Site Address (URL) субсайта в разделе Network Admin > Sites > Edit, поэтому старый плагин MU Domain Mapping больше не нужен.

Сэкономьте 10% на SSL-сертификатах при заказе сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете
Написано

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