Зачем нужен SSL-сертификат на VPS
SSL-сертификат шифрует данные между браузером пользователя и вашим сервером. Без SSL пароли, данные форм и cookies передаются в открытом виде и могут быть перехвачены. В 2026 году SSL обязателен для любого сайта — браузеры Chrome и Firefox помечают HTTP-сайты как небезопасные, а Google с 2014 года использует HTTPS как сигнал ранжирования — по его же словам, очень лёгкий.
Что даёт SSL-сертификат
- Шифрование данных — TLS 1.3 защищает трафик от перехвата (MITM-атак).
- Доверие пользователей — замок в адресной строке и отсутствие предупреждений браузера.
- Поиск — Google называет HTTPS лёгким сигналом ранжирования, Яндекс пишет, что защищённый протокол «может быть учтён в ранжировании».
- Требование платёжных систем — стандарт PCI DSS требует шифровать данные карт при передаче по открытым сетям.
- HTTP/2 и HTTP/3 — браузеры поддерживают их только поверх HTTPS.
Let's Encrypt — бесплатный центр сертификации, выпускающий DV-сертификаты с автоматическим продлением. На VPS его выпускают клиентом Certbot — его Let's Encrypt рекомендует большинству.
Типы SSL-сертификатов: какой выбрать
DV (Domain Validation) — для большинства сайтов
- Подтверждает владение доменом
- Выпускается автоматически, без проверки документов
- Бесплатно у Let's Encrypt; платные DV продают и удостоверяющие центры, но их цены мы не сверяем
- Подходит для блогов, лендингов, небольших магазинов
OV (Organization Validation) — для бизнеса
- Подтверждает организацию (проверка документов)
- Выпускается дольше: центр проверяет документы организации
- Цену смотрите у выбранного центра: мы её не сверяем
- Название компании в сертификате
EV (Extended Validation) — для крупного e-commerce
- Расширенная проверка юрлица
- Выпускается дольше всех: проверка юрлица расширенная
- Цену смотрите у выбранного центра: мы её не сверяем
- Название компании в сертификате, как и у OV
Wildcard — для поддоменов
- Покрывает *.example.com (все поддомены)
- Let's Encrypt выпускает бесплатно через DNS-challenge
- Удобно для проектов с поддоменами: api.*, cdn.*, admin.*
Рекомендация: для большинства проектов на VPS достаточно бесплатного DV-сертификата от Let's Encrypt. OV и EV нужны, когда в сертификате должно стоять название организации.
Установка Certbot на VPS
Certbot — клиент от EFF, который Let's Encrypt рекомендует большинству: он получает и продлевает сертификаты. Поддерживает Nginx, Apache и standalone-режим.
Ubuntu 22.04 / 24.04
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
certbot --versionDebian 12
sudo apt install certbot python3-certbot-nginx -yCentOS / AlmaLinux / Rocky Linux
sudo dnf install epel-release -y
sudo dnf install certbot python3-certbot-nginx -yДля Apache замените python3-certbot-nginx на python3-certbot-apache.
Получение SSL-сертификата для Nginx
Самый простой способ — Certbot автоматически настраивает Nginx.
Предварительные требования
- Домен направлен на IP вашего VPS (A-запись в DNS)
- Nginx установлен и работает
- Порты 80 и 443 открыты в файрволе
Проверка DNS
# Убедитесь, что домен указывает на IP VPS
dig +short example.com
# Должен показать IP вашего сервераПолучение сертификата
sudo certbot --nginx -d example.com -d www.example.comCertbot автоматически:
- Проверит владение доменом через HTTP-challenge
- Получит сертификат от Let's Encrypt
- Настроит Nginx: добавит listen 443, ssl_certificate, ssl_certificate_key
- Настроит редирект HTTP -> HTTPS
- Продлевать сертификат будет задание, которое ставит сам пакет certbot (в Ubuntu — таймер certbot.timer)
Что изменит Certbot в конфигурации Nginx
# /etc/nginx/sites-available/example.com
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# Ваша конфигурация сайта
root /var/www/example.com;
index index.html;
}
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}Wildcard-сертификат через DNS-challenge
Wildcard-сертификат покрывает все поддомены (*.example.com). Для его получения используется DNS-challenge вместо HTTP.
sudo certbot certonly --manual --preferred-challenges=dns \
-d example.com -d *.example.comCertbot попросит создать TXT-запись в DNS:
# Certbot покажет:
# Please deploy a DNS TXT record under the name:
# _acme-challenge.example.com
# with the following value:
# gfj9Xq...Rg5nTzKFw
# Добавьте TXT-запись через панель регистратора
# Дождитесь, пока запись появится: dig TXT _acme-challenge.example.com
# Нажмите Enter в CertbotАвтоматизация через DNS-плагины
# Для Cloudflare:
sudo apt install python3-certbot-dns-cloudflare
sudo certbot certonly --dns-cloudflare \
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
-d example.com -d *.example.com
# Для DigitalOcean и Route 53 в Ubuntu есть свои пакеты:
# sudo apt install python3-certbot-dns-digitalocean python3-certbot-dns-route53Автоматическое продление сертификата
Сертификаты Let's Encrypt сейчас действуют 90 дней; Let's Encrypt объявил сокращение — до 64 дней с 10 февраля 2027 года и до 45 с 16 февраля 2028-го. Задание продления ставит пакет certbot, но проверить его стоит. Выпущенный вручную (--manual) сертификат без хука сам не продлится.
Проверка автопродления
# Тестовый запуск (без реального продления)
sudo certbot renew --dry-run
# Проверка таймера systemd
sudo systemctl status certbot.timer
sudo systemctl list-timers | grep certbotРучное продление
sudo certbot renew
sudo nginx -t && sudo systemctl reload nginxНастройка хука для перезапуска Nginx
# /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh
#!/bin/bash
nginx -t && systemctl reload nginx
# Сделать исполняемым
chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.shNginx читает сертификат вместе с конфигурацией: без перезагрузки после продления он продолжит отдавать старый. Скрипт из каталога deploy запускается только после успешного продления.
Оптимизация SSL: TLS 1.3 и HSTS
Базовая установка SSL достаточна для безопасности, но дополнительная оптимизация ускоряет загрузку и повышает оценку в SSL Labs.
TLS 1.3 — обязательно
В Ubuntu эти строки уже есть в /etc/nginx/nginx.conf (ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3 и ssl_prefer_server_ciphers on) — замените их, а не добавляйте вторые: с повтором nginx -t не пройдёт («"ssl_prefer_server_ciphers" directive is duplicate»), при проверке 11.10.2026 так и было.
# /etc/nginx/nginx.conf, блок http: ЗАМЕНИТЬ строки, которые там уже есть
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;TLS 1.3 быстрее (1-RTT handshake вместо 2-RTT) и безопаснее. Поддерживается всеми современными браузерами.
HSTS — принудительный HTTPS
# В блоке server (listen 443)
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;HSTS сообщает браузеру: всегда подключаться только через HTTPS. max-age=63072000 — 2 года. Флаги includeSubDomains и preload ставьте, только когда на HTTPS работают все поддомены, включая внутренние: из списка предзагрузки браузеров сайт выходит месяцами (hstspreload.org).
OCSP Stapling — для Let's Encrypt больше не нужен
# С 7 мая 2025 года в сертификатах Let's Encrypt нет адреса OCSP,
# 6 августа 2025-го Let's Encrypt выключил OCSP совсем, и Nginx
# на эти строки пишет «ssl_stapling ignored». Если они есть — удалите:
# ssl_stapling on;
# ssl_stapling_verify on;
# resolver 8.8.8.8 1.1.1.1 valid=300s; — был нужен для OCSP
# resolver_timeout 5s;Проверка конфигурации
# Проверить Nginx
sudo nginx -t
sudo systemctl reload nginx
# Проверить SSL оценку
# https://www.ssllabs.com/ssltest/analyze.html?d=example.com
# Цель: оценка A+ (TLS 1.3 + HSTS)Какой сервер нужен под собственный сертификат
Сам сертификат бесплатен, а вот условия под него задаёт сервер. Из требований выше следуют три, и по ним тарифы как раз и различаются.
Публичный IPv4. HTTP-challenge проверяет владение доменом обращением к вашему адресу — значит адрес нужен публичный и свой. Выбирая по цене, проверьте, что адрес входит в тариф: у Timeweb Cloud публичный IPv4 в ценах на странице тарифов уже есть.
Root-доступ к Nginx. Всё из раздела про TLS 1.3 и HSTS правится в конфиге вручную. На виртуальном хостинге сертификат выпускает панель провайдера, а настройки шифрования вам недоступны — это и есть разница между хостингом и своим сервером в этой задаче.
Открытый порт 80 на время проверки. Вторая строка в списке частых ошибок ниже — именно про него.
Реклама · ООО «Админвпс»
AdminVPS Promo — 499 ₽ при оплате за месяц
1 ядро 3,6 ГГц, 2 ГБ памяти, 30 ГБ NVMe, канал до 1 Гбит/с и 3 ТБ трафика — для Certbot и Nginx с запасом, а еженедельные копии входят в тариф: боевой сайт с сертификатом не пропадёт вместе с сервером. Сам сертификат бесплатен на любом тарифе, и всё, чему учит статья, делается по SSH в конфиге Nginx. По промокоду EASYLINK первый месяц — 199,60 ₽ при оплате за месяц. Для пробы хватит и Lite за 349 ₽ при оплате за месяц: 1 ГБ памяти, 15 ГБ NVMe, канал 100 Мбит/с, копии платные, промокод к нему не применяется. При оплате за 12 месяцев Promo стоит 5 090 ₽ за год вместо 5 988.
Год −15 %
Частые ошибки при установке SSL на VPS
- Домен не направлен на IP VPS — Certbot не сможет пройти HTTP-challenge. Проверьте: dig +short example.com.
- Порт 80 закрыт в файрволе — HTTP-challenge требует доступности порта 80. Откройте: ufw allow 80/tcp.
- Nginx не перезагружен после установки — nginx -t && systemctl reload nginx.
- Забыли про www-версию — добавьте оба домена: -d example.com -d www.example.com.
- Сертификат не продлился автоматически — проверьте certbot renew --dry-run и systemctl status certbot.timer.
- Mixed Content после перехода на HTTPS — все ресурсы (картинки, скрипты, стили) должны загружаться через HTTPS.
Проверка на сервере 11.10.2026: что работает из коробки
Наш замер 11.10.2026. На чистом сервере Timeweb Cloud с Ubuntu 24.04.5 и Nginx 1.24.0 установка из раздела «Ubuntu 22.04 / 24.04» заняла 14 секунд и поставила certbot 2.9.0.
- Задание продления пакет ставит сам: таймер certbot.timer включён и запущен сразу после установки, отдельный cron настраивать не нужно.
- Утилита dig для проверки DNS на этом образе Ubuntu уже есть; каталог /etc/letsencrypt/renewal-hooks/deploy/ для хука создаётся вместе с пакетом.
- Блок «TLS 1.3», дописанный в основной конфиг вторым, ронял nginx -t — исправлено выше: строки надо заменить.
Чего проверка не показывает: выпуск самого сертификата и продление — для них нужен свой домен с A-записью; wildcard через DNS-плагины не проверяли. Один сервер, один день.
Заключение
SSL-сертификат на VPS — это несколько команд Certbot и бесплатная защита, которая продлевается сама. Let's Encrypt закрывает типичные нужды сайта: DV-сертификаты, wildcard, автопродление. Для оценки A+ в SSL Labs добавьте TLS 1.3 и HSTS.
Для установки SSL достаточно любого VPS с root-доступом и публичным IPv4 — тарифы трёх провайдеров, которых мы ведём, сравнены на EasyLinkLife.
Реклама · АО «ТаймВэб»
Timeweb Cloud: публичный IPv4 в цене тарифа
Cloud MSK 40 — 1 000 ₽/мес при оплате за месяц или 900 ₽/мес при оплате за 12 месяцев: 2 vCPU, 2 ГБ RAM, 40 ГБ NVMe, публичный IPv4 в цене. Оплата почасовая.
Реклама · ООО «Админвпс»
AdminVPS: сервер под сайт с сертификатом
Promo — 499 ₽/мес при оплате за месяц, root-доступ и еженедельные копии в тарифе: сертификат ставится по шагам этой статьи; по промокоду EASYLINK первый месяц 199,60 ₽ при оплате за месяц. Панель ISPmanager в обычной линейке — первый месяц бесплатно по промокоду провайдера, дальше платно; в линейке «Всё включено» входит в цену (кроме Lite).
Частые вопросы
SSL-сертификат Let's Encrypt действительно бесплатный?
Да, полностью бесплатный. Let's Encrypt — центр сертификации некоммерческой организации ISRG. Выпускают сертификат клиентом Certbot.
Сколько действует сертификат Let's Encrypt?
Сейчас 90 дней. Let's Encrypt объявил сокращение: с 10 февраля 2027 года — 64 дня, с 16 февраля 2028-го — 45. Certbot продлевает сам: версии до 4.0 — за 30 дней до конца срока, новые — когда осталась треть; запускает его таймер systemd или cron.
Как получить wildcard SSL-сертификат бесплатно?
Через DNS-challenge: certbot certonly --manual --preferred-challenges=dns -d example.com -d *.example.com. Необходимо создать TXT-запись в DNS. Выпущенный так вручную сертификат сам не продлится: для автопродления нужен DNS-плагин Certbot.
Нужен ли SSL для сайта без форм и оплаты?
Да. Браузеры Chrome и Firefox помечают HTTP-сайты как небезопасные. Google называет HTTPS лёгким сигналом ранжирования, Яндекс пишет, что защищённый протокол «может быть учтён в ранжировании». HTTP/2 браузеры поддерживают только поверх HTTPS.
Как проверить правильность установки SSL?
Используйте SSL Labs: ssllabs.com/ssltest. Цель — оценка A+. Проверьте: TLS 1.3, HSTS, отсутствие mixed content, корректную цепочку сертификатов.
Что делать если Certbot выдаёт ошибку?
Частые причины: домен не направлен на IP VPS (проверьте dig), порт 80 закрыт в файрволе (ufw allow 80), Nginx не запущен (systemctl start nginx). Логи: /var/log/letsencrypt/letsencrypt.log.
Сервер под сайт с собственным сертификатом
Выбрать VPS для сайтаНекоторые ссылки в этой статье являются партнёрскими. Мы можем получить комиссию при переходе и покупке. На стоимость для вас это не влияет. Подробнее