15 мин чтения Скорость, безопасность, хостинг

Как установить SSL-сертификат на сайт и перейти на HTTPS

let's encryptcertbot nginx
Содержание11

SSL-сертификат ставят на домен, чтобы браузер открывал сайт по HTTPS. Бесплатный Let's Encrypt выпускают в панели хостинга или через Certbot на VPS. Платные OV и EV берут, когда в сертификате нужно юрлицо. После выпуска включают один 301 с HTTP на HTTPS и проверяют цепочку и смешанный контент. Иначе замок в браузере будет то появляться, то пропадать.

Зачем сайту SSL-сертификат и HTTPS

SSL-сертификат привязывает ключ к домену. Браузер по этой связке открывает сайт по HTTPS. Канал шифрует TLS — протокол, на котором работает HTTPS. Без сертификата посетитель видит предупреждение: форма, корзина и оплата выглядят как риск.

По HTTP пароли, содержимое корзины и cookie сессии магазина или CRM едут открытым текстом. Узел на пути может их прочитать. Сертификат сам по себе сайт не ускоряет и редирект не подменяет: он включает HTTPS на домене. EV показывает организацию в деталях сертификата, а не силу шифра. Отдельного «зелёного замка» у EV в строке браузера больше нет. Поиск склеивает зеркала после корректного переезда, а не после файла в панели.

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

Сертификат не делает сайт быстрее и не заменяет 301: он только включает HTTPS на домене.

Мнение. Если на сайте есть форма, кабинет или оплата, ставьте сертификат до запуска рекламы: предупреждение браузера обрывает заявку раньше счётчика.

Какой сертификат брать: DV, OV, EV и Let's Encrypt

Магазину и витрине чаще хватает DV: проверяют только владение доменом. Шифр от типа сертификата не становится «сильнее». OV и EV дополнительно проверяют организацию и показывают её в сертификате. Это нужно, когда контрагент или регламент прямо просят юрлицо внутри crt, не «для SEO».

Let's Encrypt — бесплатный SSL-сертификат типа DV. Его выпускает ACME-клиент в панели или Certbot на VPS. Срок жизни и окно автопродления сверяйте с текущей документацией Let's Encrypt: политику меняют, и цифра из чужого гайда быстро устаревает.

Wildcard закрывает *.domain одним файлом: поддомены магазина, www и витрины, когда не хотите плодить crt на каждый хост. SAN собирает несколько имён в один сертификат. Wildcard у Let's Encrypt выпускают через DNS-01, не через файл на порту 80. Цены DV, OV и EV у регистраторов в текст не ставим: смотрите прайс выбранного CA на день покупки.

Тип Что проверяют Кому подходит Кто выпускает Автопродление
DV только домен визитка, каталог, магазин без юрлица в crt коммерческий CA зависит от CA и ACME
OV домен и организация когда контрагент просит юрлицо в сертификате коммерческий CA кабинет CA или ручная загрузка
EV домен и расширенная проверка организации редкие брендовые и банковские требования коммерческий CA как у OV
Let's Encrypt только домен, это DV большинство сайтов и витрин Let's Encrypt ACME: панель или Certbot

Если юрлицо в сертификате никто не требует — берите Let's Encrypt. OV и EV здесь лишняя бюрократия: шифр тот же, замок в строке тот же.

Что проверить до выпуска: домен, DNS, CAA и владение

Выпуск срывается на валидации, если DNS смотрит не на тот сервер. Запись A и при наличии AAAA должны указывать туда, где отвечает сайт. Иначе проверка HTTP-01 уйдёт на чужой хост, и Let's Encrypt сертификат не отдаст.

Владение доменом подтверждают по задаче. HTTP-01 кладёт файл на порт 80. DNS-01 пишет TXT — так выпускают wildcard. Почта и CNAME встречаются у платных CA. ACME — протокол, по которому панель и Certbot общаются с Let's Encrypt. Плодить все способы сразу не нужно: выберите один, который реально контролируете.

CAA-запись в DNS регулирует выпуск SSL-сертификата: в ней перечислены удостоверяющие центры, которым разрешено выпускать crt на домен. Если в CAA чужой CA, Let's Encrypt ответит отказом. Формат записи сверяйте с документацией IANA и подсказкой регистратора, не с чужим скриншотом. Нужны оба хоста — корень и www, если сайт открывается с обоих: выпускайте сразу на два имени.

Доступ тоже проверяют заранее. На shared достаточно входа в панель. На VPS — root или sudo. Для DNS-01 нужен доступ к DNS API. Если платформа сама выпускает сертификат (конструктор, облачная витрина), не ставьте Certbot рядом и не загружайте чужой crt вручную: получите конфликт на 443. Лимиты Let's Encrypt на повторный выпуск и неудачные проверки смотрите на странице Rate Limits, не в пересказах.

  • DNS: A и AAAA смотрят на этот сервер, не на старый хостинг.
  • Имена: корень и www в одном выпуске, если оба открывают сайт.
  • CAA: нет чужого CA, либо явно разрешён Let's Encrypt.
  • Порт 80 открыт снаружи, если идёте через HTTP-01.
  • Есть вход в панель либо root/sudo на VPS, либо DNS API.

Без этого списка выпуск «в два клика» превращается в ночь с логами валидации.

Какой способ установки выбрать

Способ выбирают по доступу к серверу, не по моде. Нет SSH — выпускайте в панели хостинга или в ISPmanager, продление заберёт хостер. Есть VPS с Nginx или Apache — Let's Encrypt выпускает Certbot, таймер renew держите сами. Трафик идёт через Cloudflare — сертификат висит на краю сети; origin всё равно закройте своим crt, иначе кусок пути до сервера останется открытым. Платный OV или EV берите, когда в сертификате нужно юрлицо или это написано в договоре с контрагентом.

Сценарий Кому подходит Кто выпускает Кто продлевает SSH
Панель хостинга / ISPmanager сайт на shared, без SSH хостер, часто Let's Encrypt хостер не нужен
Certbot + Nginx или Apache VPS, нужен контроль над vhost Certbot выпускает Let's Encrypt systemd-таймер или cron certbot renew root или sudo
Cloudflare, прокси включён CDN на краю сертификат края у Cloudflare Cloudflare не нужен для края; origin лучше закрыть своим crt
Платный OV / EV нужно юрлицо в сертификате коммерческий CA кабинет CA или ручная загрузка в панель не обязателен

Визитке и каталогу с формой хватает панели. Магазину на VPS — Certbot и свой vhost. Облачному фронту — край плюс сертификат на origin. Этот набор не подходит, если у вас только FTP на Windows IIS без ACME и без SSL в панели: тогда либо меняйте контур, либо грузите готовый crt тем способом, который даёт хостер.

Если сайт только проектируете, закладывайте HTTPS в запуск: разработка сайта с настроенным HTTPS.

Панель — когда нет SSH. Certbot — когда есть VPS. OV — только если просят юрлицо в сертификате.

Установка в панели хостинга и в ISPmanager

На shared-хостинге SSL-сертификат выпускают в панели, без входа по SSH. Откройте раздел SSL, выберите домен, включите выпуск Let's Encrypt, дождитесь ответа CA и откройте сайт по https://. Пока 443 не отвечает без предупреждения, редирект не трогайте.

Let's Encrypt в панели обычно просит отметить корень и www. Если валидация падает, смотрите лог выпуска: чаще виноваты DNS, закрытый порт 80 или CAA. Готовый платный crt вставляют тремя полями: сертификат, приватный ключ, цепочка ca-bundle. Ключ в тикеты, мессенджеры и git не кладут — его довольно один раз засветить.

В ISPmanager путь такой же по смыслу: SSL-сертификаты -> выпуск Let's Encrypt или загрузка файлов -> привязка к сайту. Кнопки в разных сборках панели подписаны чуть иначе, логика одна. После выпуска сайт часто всё ещё открывается по HTTP: это не сломанный сертификат, это ещё не включённый редирект.

Типичный сбой панели — выпуск только на www при пустом корне, или наоборот. Тогда один адрес с замком, второй с предупреждением. Выпускайте на оба имени, которыми реально пользуются люди.

  1. Откройте SSL в панели хостинга или в ISPmanager.

  2. Выберите домен и www, если сайт открывается с обоих.

  3. Выпустите Let's Encrypt либо вставьте crt, ключ и цепочку.

  4. Привяжите сертификат к сайту, не оставляйте его «загруженным, но не назначенным».

  5. Откройте https:// домен в браузере и убедитесь, что 443 отвечает без предупреждения.

Если панель пишет успех, а браузер ругается на цепочку — не хватает ca-bundle. Догрузите промежуточный сертификат, не перевыпускайте DV по кругу.

Certbot на VPS: Nginx и Apache

На VPS Let's Encrypt выпускает Certbot и прописывает файлы в веб-сервер. До старта DNS уже смотрит на эту машину, порты 80 и 443 открыты, пакет certbot установлен. Плагин nginx или apache правит vhost сам — берите его, если сервер уже обслуживает сайт. Webroot кладёт файл проверки в каталог сайта, когда сервер нельзя перезапускать ради выпуска. Standalone сам садится на 80 и не подходит, если там уже слушает Nginx, Apache или панель.

Живые файлы лежат в /etc/letsencrypt/live/домен/: fullchain.pem и privkey.pem. В git, бэкап без шифра и в чат их не копируют. Nginx использует SSL-сертификат так: в server на 443 директивы ssl_certificate и ssl_certificate_key, на 80 — отдельный server. Имена директив сверяйте с текущей документацией Nginx: в мажорных версиях синтаксис чуть пляшет. Для Apache те же файлы идут в SSLCertificateFile и SSLCertificateKeyFile, плюс модуль ssl и include опций Certbot. Дублировать весь блок Nginx в Apache не нужно.

Пара ключ–сертификат сверяется утилитой openssl по modulus; команду берите из man openssl. Ключ доступен только процессу веб-сервера, не всем пользователям машины. Семейство шифров ECDHE оставляйте в генераторе конфига Mozilla, простыню cipher suite руками не собирайте.

Где ломается чаще всего: в vhost попал crt без цепочки вместо fullchain; server_name не совпал с именем в сертификате; слушают только IPv4 или только IPv6.

  1. Проверьте DNS и открытые 80/443 на этом VPS.

  2. Запустите certbot с плагином nginx, apache, webroot или standalone.

  3. Убедитесь, что в /etc/letsencrypt/live/домен/ есть fullchain и privkey.

  4. Перечитайте конфиг и сделайте reload Nginx или Apache.

  5. Проверьте 443 через openssl s_client и браузер.

Certbot не ваш случай, если SSH нет и панель уже выпускает сертификат сама: два клиента на одном домене будут перезаписывать crt.

Редирект на HTTPS, автопродление и проверка

Сертификат в панели ещё не значит, что посетитель всегда попадает в HTTPS. Нужен один редирект 301 с HTTP на выбранный HTTPS-хост. Цепочки http -> www -> https или туда-обратно поисковик и браузер переваривают плохо: теряется реферер, копится время ответа, клей зеркал едет. HTTP/2 включают после рабочего сертификата, не вместо него.

Автопродление Let's Encrypt держит ACME-клиент. У Certbot это systemd-таймер или cron с certbot renew. Окно до истечения и срок жизни сертификата сверяйте с документацией Let's Encrypt, не с памятью «как у всех». Панель хостинга продлевает сама: отдельный cron на shared обычно не нужен. Если таймер молчит, сайт внезапно встречает людей предупреждением — это уже простой витрины, не «мелочь в конце чеклиста».

Проверка такая. Сайт открывается по HTTPS без предупреждения. В сертификате те CN и SAN, которыми пользуются люди. openssl s_client на 443 показывает полную цепочку, не один листовой crt. SSL Labs — внешний контроль, не единственный критерий: оценка «как у соседа» не заменяет живой замок и один 301. Ключ должен соответствовать crt: иначе браузер ругнётся сразу после reload.

Рабочий HTTPS — это не «сертификат в панели», а один 301, полная цепочка и живое автопродление.

Пока 443 отдаёт ошибку, редирект не включайте: закроете себе путь отладить выпуск.

Чеклист SEO-переезда на HTTPS

Поисковик склеит HTTP и HTTPS в один сайт, только если вы сами укажете конечное зеркало. Один 301 ведёт на канонический хост: https плюс www либо без www — один вариант на всю жизнь сайта. Внутренние ссылки, canonical, sitemap и robots тоже только https. Картинка, скрипт или CSS с http:// — это смешанный контент, и он ломает HTTPS: замок в браузере гаснет на корзине, в шапке или на виджете оплаты.

В Яндекс.Вебмастере и Google Search Console добавьте HTTPS-версию и переотправьте карту сайта. Счётчики, цели объявлений и адрес в системах аналитики переведите на https, иначе часть сессий разъедется по двум протоколам.

Смешанный контент ищут в шаблоне, корзине, подвале и внешних виджетах. Пока на боевой странице остаётся http:// в ресурсах, замок будет мигать, сколько ни крутите SSL Labs.

  • Один 301 на конечный https-хост, без цепочек через www.
  • canonical только https.
  • sitemap и robots — URL с https.
  • Внутренние ссылки в шаблоне и в контенте — https.
  • Картинки, скрипты, CSS и виджеты без http://.
  • HTTPS-сайт добавлен в Яндекс.Вебмастер и Search Console, карта переотправлена.
  • Счётчики, цели и объявления смотрят на https.

Юридических обещаний по трафику нет: переезд убирает дубль зеркал, не «поднимает позиции сам по себе». Если сайт ещё собирают, HTTPS закладывают на запуске — так проще, чем чинить смешанный контент на живой витрине. Для задачи «какой сайт нужен бизнесу и зачем сразу HTTPS» разбор вариантов лежит на странице какой сайт нужен бизнесу и зачем сразу HTTPS.

Сбои, HSTS и минимум после установки

Замок то появляется, то пропадает — почти всегда виноваты цепочка, смешанный контент или DNS. Сначала смотрят A и AAAA: HTTP-01 и браузер могут уйти на разные адреса. Потом openssl s_client на 443: видна ли полная цепочка. Затем шаблон: не осталось ли http:// в картинках и скриптах. SSL Labs подтверждают картину снаружи, не заменяют эти три шага.

Симптом Вероятная причина Что проверить
Предупреждение, нет замка нет crt, неполный ca-bundle, чужой CN openssl s_client, CN/SAN, fullchain
HTTPS не открывается DNS, закрыт 443, слушают только IPv4 или только IPv6 A/AAAA, порт, listen
Let's Encrypt не выпускает HTTP-01 ушёл не туда, чужой CAA A/AAAA на этот сервер, CAA, порт 80
Замок то есть, то нет смешанный контент картинки, скрипты, CSS, виджеты с http://
Редирект крутит, клей зеркал едет цепочка http www https один 301 на канонический https-хост

Протокол: TLS 1.2 как рабочий минимум, TLS 1.3 желателен. SSLv3, TLS 1.0 и TLS 1.1 отключают по рекомендации Mozilla SSL Config, не «потому что так принято в студии». HSTS усиливает HTTPS: браузер запоминает, что хост только с шифром. Срок max-age и флаг includeSubDomains берите из MDN. Preload включайте только после проверки всех поддоменов: если на одном из них ещё живёт HTTP, HSTS его отрежет, и откатиться быстро не выйдет.

OCSP stapling отдаёт статус отзыва вместе с crt, без лишнего запроса с устройства посетителя. Для форм и CRM на cookie сессии ставят флаги Secure и HttpOnly: иначе сессия уедет по открытому каналу. Если собираете персональные данные на формах, шифрование канала HTTPS — пункт проверки, не замена политике обработки ПДн.

HSTS preload не ставьте «всем подряд»: интернет-магазину с тестовым поддоменом без HTTPS это сломает отладку на месяцы вперёд.

Если переезжаете витрину или магазин и не хотите отлаживать цепочку в одиночку, пришлите домен — разберём сертификат, один 301 и смешанный контент до включения HSTS.

Коротко о выпуске, типах сертификата, редиректе и продлении.

Источники

Документация, на которую опираются шаги в статье.

Частые вопросы

Как установить SSL сертификат?

На shared выпуск делают в панели, чаще Let's Encrypt в два шага: выбрать домен и дождаться 443. На VPS ставят Certbot, прописывают fullchain и ключ в Nginx или Apache, затем включают один 301. Пока браузер ругается на сертификат, редирект не включают.

Чем отличаются сертификаты DV, OV и EV?

DV подтверждает только домен — этого хватает большинству сайтов и магазинов. OV и EV дополнительно проверяют организацию и показывают её в сертификате. Сила шифрования от типа не растёт: отличается проверка владельца, не алгоритм канала.

Как настроить редирект с HTTP на HTTPS?

Нужен один ответ 301 с http:// на выбранный https://-хост, без цепочки через www. Редирект включают после того, как сертификат уже открывается по 443 без ошибки. Иначе отладка выпуска закрывается самим редиректом.

Нужно ли продлевать Let's Encrypt вручную?

Нет, если настроен ACME-клиент. У Certbot это systemd-таймер или cron с certbot renew. Срок жизни сертификата и окно продления сверяйте с текущей документацией Let's Encrypt, не с чужим чеклистом.

Поделиться
ВКонтакте Telegram MAX
Рубрика статьи
Скорость, безопасность, хостинг
Ещё 12 статей в рубрике →
Рядом в разделе
Запросить Бриф на e-mail Уже есть концепция?
Запросите бриф на проект, чтобы мы могли объективно просчитать стоимость Вашего будущего проекта.
Нужна консультация?
Мы постараемся ответить на все ваши вопросы

Расскажите о задаче — посчитаем смету

Ответьте на несколько вопросов: что за компания, какие разделы нужны, есть ли тексты и фотографии. Этого хватит, чтобы посчитать смету с фиксированной ценой и сроком — она бесплатна и ни к чему не обязывает.
Написать