HTTPS давно перестал быть опцией: браузеры помечают сайты без шифрования как небезопасные, платёжные системы без него не работают, а поисковики учитывают защищённое соединение при ранжировании.
Let's Encrypt выдаёт сертификаты бесплатно и автоматически. Разберём установку, автопродление и — что важнее — переключение сайта на 1С-Битрикс на HTTPS без потери позиций и без ошибки смешанного контента.
Что такое Let's Encrypt
Некоммерческий центр сертификации, выдающий сертификаты бесплатно. Отличия от платных, о которых нужно знать:
| Let's Encrypt | Платный сертификат | |
|---|---|---|
| Стоимость | Бесплатно | От нескольких тысяч в год |
| Срок действия | 90 дней | Год и более |
| Продление | Автоматическое | Ручное |
| Уровень проверки | Только владение доменом | Возможна проверка организации |
| Шифрование | Такое же | Такое же |
Уровень шифрования одинаков. Платный сертификат с проверкой организации имеет смысл для банков и крупных компаний, где важно подтверждение юридического лица. Для типового сайта Let's Encrypt закрывает задачу полностью.
Короткий срок в 90 дней компенсируется автопродлением — при правильной настройке вы про сертификат больше не вспоминаете.
Установка
На хостинге
Большинство хостингов выпускает Let's Encrypt в пару кликов из панели управления и продлевает сам. Если такая возможность есть — используйте её, это самый простой путь.
На своём сервере
Стандартный инструмент — certbot. Для Nginx:
apt install certbot python3-certbot-nginx
certbot --nginx -d site.ru -d www.site.ru
Certbot проверит владение доменом, получит сертификат и сам пропишет его в конфигурацию веб-сервера.
Автопродление обычно настраивается при установке. Проверить его можно так:
certbot renew --dry-run
Эту проверку стоит выполнить сразу: если продление не работает, вы узнаете об этом сейчас, а не через три месяца, когда сайт перестанет открываться.
Нужна помощь с Битрикс?
Переключение Битрикс на HTTPS
Сертификат установлен — это только половина работы. Дальше нужно, чтобы сайт действительно работал по HTTPS целиком.
Шаг 1. Настройки сайта
В разделе Настройки → Настройки продукта →
Сайты замените адрес сайта на вариант с https://.
Этот адрес используется при формировании ссылок в письмах и служебных страницах.
Шаг 2. Редирект на HTTPS
Весь трафик должен переезжать на защищённую версию:
server {
listen 80;
server_name site.ru www.site.ru;
return 301 https://site.ru$request_uri;
}
Обратите внимание: редирект ведёт сразу на основное зеркало без www. Так не образуется цепочки из двух переадресаций. Подробнее — в статье Как настроить редиректы в Битрикс.
Шаг 3. Смешанный контент
Самая частая проблема при переходе. Страница отдаётся по HTTPS, но внутри подгружает картинки и скрипты по HTTP — браузер показывает предупреждение вместо замка.
Откуда берётся смешанный контент на Битрикс:
- абсолютные ссылки с
http://в контенте инфоблоков; - жёстко прописанные пути в шаблоне сайта;
- сторонние скрипты, подключённые по HTTP;
- ссылки на изображения в описаниях товаров, вставленные вручную.
Массово поправить контент в базе можно запросом:
UPDATE b_iblock_element
SET DETAIL_TEXT = REPLACE(DETAIL_TEXT, 'http://site.ru', 'https://site.ru')
WHERE DETAIL_TEXT LIKE '%http://site.ru%';
Перед запуском сделайте резервную копию базы — запрос меняет данные массово и без возможности отката. Про копии есть статья Резервное копирование Битрикс.
Найти оставшийся смешанный контент проще всего через консоль браузера: она прямо покажет, какие ресурсы грузятся небезопасно.
Шаг 4. Настройки для поисковых систем
- Обновите адрес сайта в панелях веб-мастеров.
- Укажите HTTPS-версию как основное зеркало.
- Обновите адрес в
robots.txtв директиве Sitemap. - Перегенерируйте карту сайта — в ней должны быть адреса с HTTPS.
- Проверьте канонические адреса на страницах.
Про дубли, которые возникают при наличии обеих версий сайта, есть отдельный материал Дубли страниц в Битрикс.
Шаг 5. Обновить внешние сервисы
- адрес обработчика в настройках обмена с 1С;
- адреса уведомлений в платёжных системах;
- адреса вебхуков в CRM и других интеграциях;
- ссылки в почтовых шаблонах.
Платёжные системы — самое критичное: если адрес уведомления остался с HTTP, оплаты перестанут подтверждаться, а заказы будут висеть неоплаченными.
Проверка
- Откройте сайт — в адресной строке должен быть замок без предупреждений.
- Проверьте несколько внутренних страниц, а не только главную.
- Откройте консоль браузера и убедитесь, что нет предупреждений о смешанном контенте.
- Проверьте переадресацию с HTTP и с www.
- Проверьте админку и авторизацию.
- Оформите тестовый заказ и проверьте оплату.
- Проверьте срок действия сертификата и работу автопродления.
Частые ошибки
- Сертификат установлен, редиректа нет. Сайт доступен по обоим протоколам — образуются дубли всех страниц.
- Не проверено автопродление. Через 90 дней сайт перестаёт открываться, и это всегда происходит неожиданно.
- Остался смешанный контент. Замок не появляется, посетитель видит предупреждение.
- Адрес сайта в настройках Битрикс остался с HTTP. Ссылки в письмах ведут на незащищённую версию.
- Сертификат выпущен только на домен без www. Версия с www отдаёт ошибку сертификата.
- Не обновлены адреса в платёжных системах. Оплаты не подтверждаются.
Итог
Let's Encrypt даёт бесплатный сертификат с автоматическим продлением — для типового сайта этого достаточно, уровень шифрования такой же, как у платных.
Основная работа не в установке сертификата, а в переключении сайта: смена адреса в настройках, редирект с HTTP, устранение смешанного контента и обновление адресов во внешних сервисах. И обязательно проверьте автопродление сразу — сертификат живёт 90 дней, и узнать о неработающем продлении лучше сегодня, чем через три месяца.
