SSL-сертификат для сайта: как получить бесплатно, установить и проверить

Сайты 9 мин чтения

SSL-сертификат для сайта нужен, чтобы данные между браузером и сервером передавались в зашифрованном виде, а адрес начинался с https. Без него браузеры помечают сайт как «Не защищено», а при вводе данных в форму предупреждают посетителя об опасности. Для обычного сайта компании, лендинга или интернет-магазина хватает бесплатного сертификата Let’s Encrypt: шифрование у него такое же, как у платного, а выпуск и продление на большинстве хостингов делаются одной кнопкой. Ниже о том, какие бывают сертификаты, как получить SSL бесплатно, как проверить сертификат и что делать с ошибками в браузере.

Что такое SSL-сертификат и как он работает

Формально протокол давно называется TLS, но по привычке все говорят SSL. Сертификат это небольшой файл, который связывает доменное имя с ключом шифрования и подписан удостоверяющим центром. Браузер доверяет ограниченному списку таких центров. Когда посетитель открывает сайт, браузер получает сертификат, проверяет подпись, срок действия и совпадение домена и только после этого устанавливает зашифрованное соединение.

Что даёт https на практике:

  • данные форм, пароли и платёжные сведения не читаются по дороге, например в общественной сети Wi-Fi;
  • никто между вами и посетителем не подменит содержимое страницы, не вставит рекламу или вредоносный скрипт;
  • браузер не пугает посетителя пометкой «Не защищено»;
  • работают современные технологии: HTTP/2, геолокация, push-уведомления, многие платёжные виджеты требуют https;
  • поисковики предпочитают https: Google прямо учитывает его как сигнал, а Яндекс склеивает зеркала и показывает в поиске версию с https, если она настроена правильно.

Какие бывают SSL-сертификаты

ТипЧто проверяетсяКому подходит
DV (Domain Validation)только право управлять доменомпочти все сайты: визитки, блоги, магазины
OV (Organization Validation)домен и существование организациикомпании, которым нужны реквизиты в сертификате
EV (Extended Validation)расширенная проверка компаниибанки, крупные платёжные сервисы
Wildcardдомен и все поддомены вида *.site.ruсайты с множеством поддоменов
Мультидоменный (SAN)несколько разных доменов в одном сертификатегруппы сайтов одной компании

Шифрование у всех типов одинаковое. Разница в том, что именно проверил удостоверяющий центр перед выдачей. Раньше EV-сертификат подсвечивал название компании зелёным в адресной строке, но браузеры давно убрали эту подсветку, и обычный посетитель отличия не увидит. Поэтому для большинства бизнес-сайтов переплачивать за OV или EV нет смысла.

Как получить SSL-сертификат бесплатно

Let’s Encrypt

Let’s Encrypt это некоммерческий удостоверяющий центр, который выдаёт DV-сертификаты бесплатно и автоматически. Ему доверяют все актуальные браузеры. Сертификат действует 90 дней, поэтому продление должно быть автоматическим: вручную про него рано или поздно забудут.

Wildcard-сертификаты Let’s Encrypt тоже выдаёт, но только с подтверждением через DNS-запись, а это сложнее автоматизировать, если DNS у регистратора без API.

Через панель хостинга

У большинства хостингов есть раздел SSL-сертификатов, где бесплатный сертификат Let’s Encrypt выпускается кнопкой, а продление хостинг берёт на себя. Порядок обычно такой:

  1. Домен должен уже смотреть на этот хостинг: A-запись указывает на IP сервера.
  2. В разделе SSL выберите домен и бесплатный сертификат.
  3. Отметьте, что сертификат нужен и для www, иначе на адресе с www будет ошибка.
  4. Дождитесь выпуска, обычно это минуты.
  5. Настройте редирект с http на https, если хостинг не сделал этого сам.

На своём сервере через Certbot

На VPS с nginx сертификат выпускается утилитой Certbot:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d site.ru -d www.site.ru

Certbot сам подтвердит домен, пропишет сертификат в конфигурацию nginx и предложит включить редирект на https. Продление он настраивает через системный таймер или cron. Проверить, что продление сработает, можно заранее:

sudo certbot renew --dry-run

Конструкторы сайтов

На Tilda, в облачных платформах для магазинов и в большинстве конструкторов сертификат для подключённого домена выпускается автоматически. Делать ничего не нужно, кроме проверки, что сайт открывается по https.

Платный сертификат: когда он нужен

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

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

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

Отдельная история с российскими сертификатами Национального удостоверяющего центра. Они появились в 2022 году для сайтов, которым западные центры отказали в выпуске. Им доверяют Яндекс Браузер и ещё несколько российских браузеров, а Chrome, Firefox и Safari без установки корневого сертификата на устройство покажут ошибку. Для обычного коммерческого сайта, у которого нет проблем с Let’s Encrypt, такой сертификат не нужен.

Что сделать после установки сертификата

Сертификат установлен, но работа не закончена. Чтобы переход на https прошёл без потерь:

  1. Настройте 301 редирект с http на https для всех страниц с сохранением пути. Готовые правила для .htaccess и nginx в статье про 301 редирект.
  2. Уберите смешанное содержимое. Картинки, скрипты и стили, подключённые по http, браузер на https-странице заблокирует или пометит. Замените адреса в шаблоне и в базе данных. В WordPress это делают поиском и заменой по базе, например через WP-CLI.
  3. Обновите внутренние ссылки, canonical и sitemap.xml на адреса с https.
  4. Сообщите Яндексу. В Вебмастере добавьте https-версию сайта и оформите переезд в разделе «Индексирование», пункт «Переезд сайта», отметив переход на HTTPS. Подробнее в статье переезд сайта без потери позиций.
  5. Проверьте Метрику, рекламу и интеграции. Адрес сайта в счётчике, ссылки в объявлениях Директа, адреса для вебхуков платёжной системы и CRM.

После переезда на https позиции в Яндексе обычно не проседают заметно, если редирект стоит постраничный, а не на главную.

HSTS: включать осторожно

Заголовок Strict-Transport-Security заставляет браузер всегда открывать сайт только по https, даже если человек набрал http. Это полезно, но обратного пути нет на весь срок, указанный в заголовке. Если сертификат однажды не продлится, посетители, у которых браузер запомнил HSTS, не смогут открыть сайт вообще, даже нажав «всё равно перейти». Включайте HSTS, когда продление работает стабильно, и начинайте с небольшого срока.

Как проверить SSL-сертификат

В браузере

Нажмите на значок слева от адреса и откройте сведения о сертификате. Там видно, кем выдан сертификат, для каких доменов и до какого числа он действует.

Онлайн

Самый подробный бесплатный сервис SSL Labs Server Test от Qualys. Он проверяет цепочку сертификатов, поддерживаемые версии протокола, настройки шифрования и выставляет оценку от A+ до F. Оценка A или A+ означает, что всё настроено как следует. Если сервис пишет про неполную цепочку (chain incomplete), это нужно исправить, даже если в вашем браузере сайт открывается.

В командной строке

echo | openssl s_client -connect site.ru:443 -servername site.ru 2>/dev/null | openssl x509 -noout -dates -subject

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

Мониторинг срока действия

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

  • скрипт или сервис мониторинга, который раз в день проверяет дату окончания и предупреждает за две недели;
  • проверка после любых изменений DNS, сервера или домена;
  • отдельный список всех доменов и поддоменов компании с сертификатами: лендинги, почта, CRM, тестовые стенды.

Если у вас несколько сайтов, это занимает час на настройку и избавляет от внезапных ошибок в пятницу вечером.

Частые ошибки SSL и как их исправить

Что видит посетительПричинаРешение
NET::ERR_CERT_DATE_INVALIDсертификат истёк, реже неверное время на устройствепродлить, настроить автопродление
NET::ERR_CERT_COMMON_NAME_INVALIDсертификат выдан на другой домен, часто нет wwwперевыпустить с обоими вариантами домена
NET::ERR_CERT_AUTHORITY_INVALIDсамоподписанный сертификат или центр, которому браузер не доверяетпоставить сертификат признанного центра
На компьютере работает, на телефоне ошибкане установлен промежуточный сертификатподключить полную цепочку (fullchain.pem)
ERR_TOO_MANY_REDIRECTS после включения httpsредирект на https срабатывает за прокси бесконечнопроверять заголовок X-Forwarded-Proto
Замок с предупреждением или без замкасмешанное содержимое по httpзаменить адреса ресурсов на https
ERR_SSL_PROTOCOL_ERRORошибка в настройке сервера или устаревший протоколпроверить конфигурацию через SSL Labs

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

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

Достаточно ли бесплатного SSL-сертификата для интернет-магазина?

Да. Шифрование у Let’s Encrypt такое же, как у платных DV-сертификатов, а платёжные системы требуют именно https, а не конкретного продавца сертификата. Платный нужен, если OV или EV прямо требует банк или партнёр.

Как часто продлевать SSL-сертификат?

Let’s Encrypt действует 90 дней, Certbot и панели хостингов продлевают его автоматически примерно за месяц до окончания. Ваша задача убедиться, что автопродление настроено, и поставить мониторинг срока действия.

Как найти смешанное содержимое на странице?

Откройте страницу, затем DevTools и вкладку Console: браузер выводит предупреждения Mixed Content с адресами ресурсов, загруженных по http. Для всего сайта удобнее краулер, который покажет http-ссылки на картинки, скрипты и стили на всех страницах сразу.

Нужен ли SSL сайту-визитке без форм?

Нужен. Браузеры помечают любой сайт без https как незащищённый, а это отпугивает посетителей. К тому же бесплатный сертификат ничего не стоит.

Упадут ли позиции при переходе на https?

При правильном переезде заметных потерь нет. Главное: постраничный 301 редирект, переезд в Вебмастере и исправленные внутренние ссылки. Временные колебания на время переклейки зеркал возможны.

Если сертификат истекает, сайт показывает ошибку или нужно перевести сайт на https без потерь, мы сделаем это в рамках техподдержки сайта. А заодно можем проверить остальные уязвимые места в ходе аудита безопасности.

Заявка

Обсудим вашу задачу

Опишите, что нужно, и пришлите адрес сайта, если он есть. Посмотрим, предложим решение и назовём цену и срок. Консультация бесплатная.

  • Ответим в течение рабочего дня
  • Работаем по договору, оплата по счёту
  • Сначала план и смета, потом работа
Или напишите в мессенджер: Telegram MAX

Заявка

Расскажите о задаче

Ответим в течение рабочего дня: уточним детали, назовём срок и цену. Ни к чему не обязывает.