Let's Encrypt и HTTPS на WordPress: пошаговое руководство

Перевод сайта на защищённый протокол давно перестал быть опциональным. Поисковые системы учитывают наличие сертификата при ранжировании, а браузеры помечают HTTP-ресурсы как небезопасные. Для проектов на WordPress подключение SSL особенно логично: CMS спроектирована под веб и работает по тем же стандартам, что и другие сайты. Достаточно корректно настроить сертификат, и платформа будет отдавать страницы по HTTPS без дополнительных правок в коде.

Раньше получить валидный сертификат можно было только у коммерческих центров, что для небольших проектов означало ежегодные расходы. Сегодня существует бесплатный вариант — Let's Encrypt, выдающий сертификаты на 90 дней с автоматическим продлением. Разберём, что представляет собой этот центр, как подготовить хостинг, какими способами выпустить и установить сертификат, и что настроить в WordPress, чтобы переход прошёл без ошибок.

Зачем сайту нужен защищённый протокол

HTTPS — не просто аббревиатура в адресной строке. Защищённое соединение шифрует трафик между браузером и сервером: логины, пароли, cookie и данные форм передаются в зашифрованном виде. Без SSL злоумышленник в одной сети с пользователем способен перехватить эти данные или внедрить вредоносный код через модифицированные скрипты.

Для WordPress это особенно актуально. Вход в админку, восстановление пароля, отправка комментариев, работа WooCommerce — все сценарии используют аутентификационные данные, утечка которых критична. Дополнительно, многие API и сторонние сервисы (платёжные шлюзы, аналитика, карты) отказываются работать с HTTP, ограничивая функциональность сайта.

Поисковые системы включили HTTPS в факторы ранжирования ещё в 2014 году. С тех пор наличие валидного сертификата влияет на позиции, а его отсутствие приводит к падению трафика. Для блога на WordPress подключение SSL превращается из рекомендации в необходимость. При этом HTTPS защищает канал передачи, а от трекеров и фишинговых скриптов на стороне браузера спасают другие инструменты — например, настройка uBlock Origin для блокировки трекеров подробно описана в отдельном руководстве.

Как устроен центр сертификации Let's Encrypt

Let's Encrypt — некоммерческий проект ISRG (Internet Security Research Group) при поддержке Mozilla, Cisco, Akamai и Google. Цель — сделать шифрование стандартом по умолчанию. Сертификаты выпускаются бесплатно, процесс автоматизирован, а открытое ПО позволяет любому провайдеру интегрировать выпуск в панель управления.

Технически центр работает по протоколу ACME. Клиент на сервере связывается с Let's Encrypt, подтверждает права на домен через DNS-запись или временный файл и получает сертификат. Срок действия — 90 дней, поэтому требуется регулярное обновление. На практике оно запускается автоматически, и администратор не замечает процесса.

Существует три типа сертификатов: Domain Validation (только домен), Organization Validation (с проверкой компании) и Extended Validation (с расширенной проверкой). Let's Encrypt выдаёт только DV, и для большинства блогов этого достаточно. Банкам и крупным маркетплейсам с требованиями OV или EV придётся обращаться к коммерческим центрам.

Проверка хостинга и системные требования

Перед выпуском убедитесь, что хостинг поддерживает Let's Encrypt. Большинство современных провайдеров встроили эту функцию в панель — достаточно нажать кнопку и дождаться выпуска. Если опции нет, понадобится доступ по SSH и возможность устанавливать дополнительное ПО.

Минимальные требования для ручной установки: VPS под управлением Linux, доступ к терминалу с правами root, возможность управлять DNS домена. Для проверки владения используется HTTP-01 (через файловую систему) или DNS-01 (через записи). Второй способ предпочтительнее при использовании CDN или прокси вроде Cloudflare. Похожие принципы действуют и для других платформ — если вы администрируете корпоративный портал, посмотрите ресурс о SharePoint, где есть руководства по настройке SSL.

Также подготовьте домен: он должен указывать на IP сервера через A-запись, а для поддомена www нужна корректная CNAME. Без правильных DNS-записей выпуск не удастся, и система выдаст ошибку авторизации. Заранее проверьте резолв командой ping или через DNS Checker.

Установка сертификата через панель управления

Самый простой путь — встроенный инструмент хостинга. Войдите в панель, найдите раздел «SSL-сертификаты» или «Безопасность», выберите пункт «Установить Let's Encrypt» и укажите домен. Некоторые провайдеры позволяют сразу включить поддержку поддомена www — рекомендуется активировать эту опцию, чтобы не выпускать отдельный сертификат.

После нажатия кнопки система свяжется с Let's Encrypt, пройдёт проверку и через несколько минут выдаст сертификат. Включите перенаправление HTTP → HTTPS (галочка часто появляется автоматически). Параллельно активируйте HSTS — заголовок Strict-Transport-Security, который заставляет браузеры всегда использовать защищённое соединение.

На этом этапе сертификат работает: по https:// в адресной строке появится замочек. Однако это половина работы — WordPress ещё ничего не знает о новом протоколе и формирует ссылки в HTTP-формате, что приводит к ошибкам смешанного контента.

Получение SSL вручную через Certbot

Если хостинг не поддерживает встроенный выпуск, установите сертификат самостоятельно через Certbot — официальный клиент ACME. На Ubuntu или Debian: sudo apt install certbot python3-certbot-nginx (для Nginx) или sudo apt install certbot python3-certbot-apache (для Apache). Утилита сама определит конфигурацию и предложит варианты.

Запуск выпуска: sudo certbot --nginx -d example.com -d www.example.com (или --apache). Certbot запросит email для уведомлений, попросит принять условия и автоматически отредактирует конфигурацию, добавив редирект HTTP → HTTPS. Этот способ надёжен, поскольку правки вносятся в проверенные конфиги.

Для серверов без Nginx и Apache (например, с Caddy): sudo certbot certonly --webroot -w /var/www/html -d example.com -d www.example.com. Вы получите файлы fullchain.pem и privkey.pem для ручного подключения. Не забудьте настроить автопродление в crontab: 0 3 * * * certbot renew --quiet.

Перевод WordPress на HTTPS и настройка wp-config.php

После установки сертификата откройте админку и перейдите в «Настройки → Общие». Замените поля «Адрес WordPress (URL)» и «Адрес сайта (URL)» с http:// на https://, сохраните изменения. Админка будет загружаться по защищённому протоколу, а внутренние ссылки станут корректными.

Чтобы избежать бесконечных редиректов, добавьте в wp-config.php перед строкой /* That's all, stop editing! Happy publishing. */ константу: define('FORCE_SSL_ADMIN', true);. Для мультисайта потребуются дополнительные правки в wp-config.php и базе данных.

Обязательный шаг — массовая замена HTTP-ссылок в записях. Проще всего через SQL-запрос в phpMyAdmin:

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://example.com', 'https://example.com');

Перед выполнением сделайте резервную копию базы и замените префикс таблиц на свой. Плагины миграции вроде Better Search Replace сначала запускайте в режиме dry run.

Типичные ошибки и способы их устранения

Самая частая проблема — смешанный контент (mixed content). Браузер загружает страницу по HTTPS, но внутри встречаются HTTP-ссылки на изображения, скрипты, стили. Современные браузеры блокируют такие элементы. Решение: откройте консоль разработчика (F12 → Console), найдите предупреждения и замените абсолютные http://-ссылки на относительные (//) или https://.

Вторая ошибка — циклический редирект. Возникает, когда и сервер, и WordPress пытаются перенаправить трафик на HTTPS. Решается очисткой кеша (WP Super Cache, W3 Total Cache, LiteSpeed Cache) и проверкой .htaccess на дублирующиеся блоки RewriteRule. Иногда помогает временно отключить плагины через FTP, чтобы найти конфликтующее расширение.

Третья ситуация — сертификат не продлевается автоматически. Причины: изменения DNS, блокировка исходящего трафика на порт 443, веб-сервер не перечитал конфигурацию. Проверьте логи certbot (/var/log/letsencrypt/), убедитесь, что задача в cron активна (sudo systemctl list-timers | grep certbot), и запустите тест: sudo certbot renew --dry-run.

После настройки HTTPS стоит подумать и о других уровнях защиты. HTTPS закрывает канал передачи данных, но не защищает от уязвимостей в плагинах, устаревших версиях движка и слабых паролях. На сайте регулярно публикуются материалы по смежным темам — загляните в раздел об интернете, где собраны руководства по инфраструктуре и серверной оптимизации. Защищённый WordPress требует комплексного подхода: помимо сертификата важно обновлять ядро и темы, создавать резервные копии, использовать двухфакторную аутентификацию и проверять журналы на подозрительную активность. Начните с малого — установите и настройте сертификат, проверьте сайт на отсутствие mixed content, и через пару часов ваш проект заработает по зелёному замочку.

Иконка пользователя в серых тонах

Настройка Windows

Доступ к скрытым параметрам конфигурации, отключение телеметрии, работа с диспетчером задач и тонкая настройка меню «Пуск» в стиле Windows XP для Windows 7.

Иконка браузера в серо-синих тонах

Веб-браузеры

Скрытые страницы конфигурации в Firefox, Chrome и Opera, быстрый текстовый редактор прямо в браузере, эффект Lightbox JS для изображений и настройка внешнего вида Firefox.

Иконка папки в нейтральных серых тонах

WordPress и блоги

Выполнение PHP-кода в текстовых виджетах, диагностика времени загрузки разделов страницы, правильная очистка блога и условная загрузка виджетов социальных сетей.

Изометрический 3D-рендер: светлый веб-сайт с серо-голубым заголовком, парящий над чистой белой поверхностью Изометрический 3D-рендер: тёмно-серая иконка социального букмаркинга на светлом фоне

Обратная связь

Есть вопрос или предложение по темам блога? Напишите — автор на связи.