Зачем нужен SSL-сертификат на VPS
SSL-сертификат шифрует данные между браузером пользователя и вашим сервером. Без SSL пароли, данные форм и cookies передаются в открытом виде и могут быть перехвачены. В 2026 году SSL обязателен для любого сайта — браузеры Chrome и Firefox помечают HTTP-сайты как небезопасные, а Google и Яндекс учитывают HTTPS как фактор ранжирования.
Что даёт SSL-сертификат
- Шифрование данных — TLS 1.3 защищает трафик от перехвата (MITM-атак).
- Доверие пользователей — замок в адресной строке и отсутствие предупреждений браузера.
- SEO-буст — Google и Яндекс повышают HTTPS-сайты в выдаче.
- Требование платёжных систем — приём оплаты невозможен без SSL (PCI DSS).
- HTTP/2 и HTTP/3 — современные протоколы работают только через HTTPS.
Let's Encrypt — бесплатный центр сертификации, выпускающий DV-сертификаты с автоматическим продлением. На VPS сертификат устанавливается за 5 минут через Certbot.
Типы SSL-сертификатов: какой выбрать
DV (Domain Validation) — для большинства сайтов
- Подтверждает владение доменом
- Выпускается за 1-5 минут
- Бесплатно (Let's Encrypt) или от 500 руб./год
- Подходит для блогов, лендингов, небольших магазинов
OV (Organization Validation) — для бизнеса
- Подтверждает организацию (проверка документов)
- Выпускается за 1-3 дня
- От 3000-5000 руб./год
- Название компании в сертификате
EV (Extended Validation) — для крупного e-commerce
- Расширенная проверка юрлица
- Выпускается за 3-14 дней
- От 10000 руб./год
- Максимальный уровень доверия
Wildcard — для поддоменов
- Покрывает *.example.com (все поддомены)
- Let's Encrypt выпускает бесплатно через DNS-challenge
- Удобно для проектов с поддоменами: api.*, cdn.*, admin.*
Рекомендация: для 90% проектов на VPS достаточно бесплатного DV-сертификата от Let's Encrypt. OV/EV нужен только крупному бизнесу с обработкой платежей.
Установка Certbot на VPS
Certbot — официальный клиент Let's Encrypt для автоматического получения и продления SSL-сертификатов. Поддерживает 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
- Добавит задание в crontab для автопродления
Что изменит 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-запись через панель регистратора
# Подождите 1-2 минуты для распространения DNS
# Нажмите 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
# Для Yandex Cloud DNS, DigitalOcean и других:
# pip install certbot-dns-<provider>Автоматическое продление сертификата
Сертификаты Let's Encrypt действуют 90 дней. Certbot автоматически добавляет задание для продления, но стоит проверить его работу.
Проверка автопродления
# Тестовый запуск (без реального продления)
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.shПосле продления сертификата Nginx автоматически подхватит новый файл без перезапуска.
Оптимизация SSL: TLS 1.3, HSTS, OCSP Stapling
Базовая установка SSL достаточна для безопасности, но дополнительная оптимизация ускоряет загрузку и повышает оценку в SSL Labs.
TLS 1.3 — обязательно
# /etc/nginx/nginx.conf или sites-available/
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 года.
OCSP Stapling — ускорение проверки сертификата
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 1.1.1.1 valid=300s;
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)Частые ошибки при установке 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.
Заключение
SSL-сертификат на VPS — это 5 минут работы с Certbot и бесплатная защита на годы. Let's Encrypt покрывает 90% потребностей: DV-сертификаты, wildcard, автопродление. Для максимальной оценки в SSL Labs добавьте TLS 1.3, HSTS и OCSP Stapling.
Для установки SSL достаточно любого VPS с Nginx. Сравните провайдеров с предустановленным Nginx и бесплатным SSL на EasyLinkLife.
Плюсы и минусы
Преимущества
- Пошаговая инструкция с готовыми командами
- Охват Nginx, Apache, standalone
- Wildcard через DNS-challenge
- Оптимизация: TLS 1.3, HSTS, OCSP Stapling
- Автопродление через systemd
- Частые ошибки с решениями
Недостатки
- Не покрывает Caddy (встроенный SSL)
- Нет примеров для Windows Server
- DNS-плагины не для всех провайдеров
Частые вопросы
SSL-сертификат Let's Encrypt действительно бесплатный?
Да, полностью бесплатный. Let's Encrypt — некоммерческий центр сертификации, спонсируемый EFF, Mozilla, Google и другими. Сертификат выпускается за 1-2 минуты через Certbot.
Сколько действует сертификат Let's Encrypt?
90 дней. Certbot автоматически продлевает сертификат за 30 дней до истечения через systemd timer или 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 с бесплатным SSL
Выбрать VPS для сайтаНекоторые ссылки в этой статье являются партнёрскими. Мы можем получить комиссию при переходе и покупке. На стоимость для вас это не влияет. Подробнее