Установка SSL-сертификата на WordPress: пошаговая инструкция | IT-Gig

Как установить SSL-сертификат на WordPress: пошаговая инструкция

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

1. Какой сертификат нужен

Для подавляющего большинства сайтов достаточно сертификата уровня Domain Validation (DV) — он подтверждает только владение доменом и выпускается автоматически за минуты. Коммерческая проверка организации (OV/EV) имеет смысл для банков и крупных e-commerce проектов, где визуальное подтверждение юрлица в сертификате действительно важно пользователю. Let’s Encrypt выпускает DV-сертификаты бесплатно и автоматически продлевает их — для большинства сайтов на WordPress это закрывает вопрос SSL полностью без дополнительных затрат.

2. Выпуск сертификата через certbot

На сервере с Nginx выпуск и установка через стандартный клиент Let’s Encrypt выглядит так:

certbot --nginx -d it-gig.ru -d www.it-gig.ru

Certbot сам находит конфигурацию виртуального хоста, выпускает сертификат и дописывает в конфиг Nginx нужные директивы ssl_certificate/ssl_certificate_key, а также настраивает автоматическое продление через системный таймер — вручную следить за истечением срока действия не требуется.

3. Редирект с HTTP на HTTPS на уровне сервера

Наличие сертификата само по себе не заставляет посетителей и поисковик использовать защищённую версию — нужен явный редирект, настроенный на уровне веб-сервера, а не только внутри WordPress:

server { listen 80; server_name it-gig.ru www.it-gig.ru; return 301 https://it-gig.ru$request_uri; }

Редирект именно на уровне Nginx, а не через PHP-плагин, отрабатывает быстрее и не зависит от того, успел ли загрузиться WordPress.

4. Перенос адресов внутри WordPress

После настройки сервера нужно обновить сам WordPress — в первую очередь опции siteurl и home в базе данных, чтобы они указывали на https://, а не на старый протокол. Дальше — поиск и замена абсолютных ссылок на http:// внутри контента страниц и записей, которые накопились за время работы сайта по HTTP, безопаснее всего через WP-CLI: wp search-replace 'http://it-gig.ru' 'https://it-gig.ru' --skip-columns=guid. Флаг --skip-columns=guid важен — поле GUID не должно меняться после публикации записи по рекомендациям самого WordPress.

5. Проверка после переноса

Финальный шаг — убедиться, что на сайте не осталось смешанного контента (HTTP-ресурсов на HTTPS-странице), который браузер либо блокирует, либо помечает как небезопасный несмотря на действующий сертификат. SSL Labs Server Test показывает полную картину конфигурации сертификата и протоколов, а встроенный в DevTools браузера консольный вывод предупреждений о Mixed Content — самый быстрый способ найти оставшиеся HTTP-ссылки на конкретной странице.

6. HSTS и дальнейшее усиление защиты

После того как HTTPS настроен и проверен, следующий уровень — заголовок Strict-Transport-Security, который явно говорит браузеру запоминать, что сайт должен открываться только по HTTPS, и не пытаться соединяться по HTTP даже при прямом вводе адреса без протокола: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; в конфигурации Nginx. Включать includeSubDomains стоит только после того, как все поддомены тоже переведены на HTTPS — иначе недоступный по HTTPS поддомен станет недоступен вовсе.

Частые ошибки

Перенос только главной страницы на HTTPS с оставлением внутренних страниц на HTTP — технически возможная, но вредная промежуточная конфигурация: поисковик индексирует сайт как частично незащищённый. Вторая ошибка — пропуск обновления изображений и подключаемых скриптов из сторонних CDN, которые продолжают грузиться по HTTP и триггерят предупреждение о смешанном содержимом даже на полностью перенесённом на первый взгляд сайте. Третья — забытый редирект для версии с www, из-за чего оба варианта домена индексируются параллельно как разные сайты, размывая SEO-вес между ними. Четвёртая — сертификат, который выпущен только на корневой домен без поддомена www или наоборот, из-за чего один из двух вариантов адреса сайта продолжает показывать ошибку сертификата при прямом заходе, даже если основной редирект настроен верно.

Теги:

✕
[wp_chatgpt_assistant]
Скопировано!