Загрузка...
Загрузка...
Сравнение типов SSL-сертификатов: DV, OV, EV, Wildcard, Multi-Domain. Как выбрать подходящий сертификат для вашего проекта. Стоимость, сроки выдачи, особенности.
Подробное руководство по типичным ошибкам SSL: ERR_CERT_AUTHORITY_INVALID, mixed content, истёкший сертификат, проблемы цепочки. Диагностика и исправление для веб-мастеров.
БезопасностьВсё о SSL/TLS сертификатах: типы, получение, настройка, обновление. Let's Encrypt, Wildcard, EV-сертификаты. Практическое руководство для веб-разработчиков.
БезопасностьПошаговая настройка HSTS для принудительного HTTPS. max-age, includeSubDomains, preload. Nginx, Apache, Cloudflare. Проверка и отладка.
БезопасностьПошаговое руководство по установке бесплатных SSL-сертификатов Let's Encrypt на Apache и Nginx. Certbot, автообновление, wildcard. Практический гайд для веб-мастеров.
Поделитесь с коллегами или изучите другие материалы блога
Выбор SSL-сертификата перестал быть формальностью. В 2026 году от типа сертификата зависит не только наличие замка в адресной строке, но и позиции в поисковой выдаче, уровень доверия пользователей и соответствие регуляторным требованиям. На рынке десятки предложений — от бесплатных DV-сертификатов до EV-сертификатов стоимостью в сотни долларов. Разберёмся, чем они отличаются и какой подходит именно вашему проекту.
SSL/TLS-сертификат обеспечивает шифрование данных между браузером и сервером. Без него любой, кто имеет доступ к промежуточному узлу сети — провайдер, администратор публичного Wi-Fi, злоумышленник — может перехватить передаваемую информацию: логины, пароли, данные банковских карт.
Сертификат выполняет две функции:
Google включил HTTPS в факторы ранжирования ещё в 2014 году. С тех пор значимость этого сигнала только выросла:
Проверить текущее состояние сертификата можно с помощью Проверки SSL на reChecker — инструмент покажет тип сертификата, срок действия, цепочку доверия и потенциальные проблемы.
По данным GlobalSign, 84% пользователей откажутся от покупки на сайте, если увидят предупреждение о небезопасном соединении. Для e-commerce и финансовых сервисов наличие SSL — необходимое условие работы платёжных шлюзов. Стандарт PCI DSS прямо требует шифрования всех данных, связанных с обработкой карт.
Все SSL-сертификаты обеспечивают одинаковый уровень шифрования. Разница — в глубине проверки владельца и объёме информации, включённой в сертификат.
Самый простой тип. Удостоверяющий центр (CA) проверяет только факт владения доменом одним из способов:
.well-known на сервереВыдача занимает от нескольких секунд до нескольких минут. В сертификате содержится только доменное имя — без информации об организации.
Когда подходит: личные сайты, блоги, лендинги, небольшие проекты, внутренние сервисы.
Помимо домена, CA проверяет существование и легитимность организации:
Сертификат содержит название компании, город и страну — информация видна при просмотре деталей сертификата в браузере.
Когда подходит: корпоративные сайты, бизнес-порталы, SaaS-платформы, государственные учреждения.
Максимальный уровень проверки. Процедура регламентирована стандартами CA/Browser Forum:
Ранее EV-сертификаты отображали название компании в адресной строке (зелёная строка). С 2019 года Chrome и Firefox убрали этот индикатор, но информация доступна при клике на замок.
Когда подходит: банки, платёжные системы, крупные интернет-магазины, страховые компании.
| Параметр | DV | OV | EV |
|---|---|---|---|
| Что проверяется | Домен | Домен + организация | Домен + организация + расширенная верификация |
| Срок выдачи | Минуты | 1–3 рабочих дня | 5–14 рабочих дней |
| Стоимость | $0–50/год | $50–200/год | $200–500/год |
| Информация в сертификате | Домен | Домен, компания, город, страна | Домен, компания, адрес, рег. номер |
| Гарантия (warranty) | $10K–$500K | $500K–$1.25M | $1M–$2M |
| Бесплатные варианты | Да (Let's Encrypt) | Нет | Нет |
| Подходит для | Блоги, лендинги | Бизнес-сайты, порталы | Банки, e-commerce, финтех |
Узнать тип сертификата любого сайта можно через командную строку:
openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | \
openssl x509 -noout -text | grep -A2 "Subject:"
Для DV вывод содержит только CN = example.com. Для OV и EV — дополнительные поля O = (организация), L = (город), C = (страна).
Защищает один конкретный домен. Большинство CA включают и версию с www, и без неё:
example.com
www.example.com
Самый доступный вариант. Подходит для проектов с одним доменом без поддоменов.
Защищает домен и все его поддомены первого уровня по маске *.example.com:
example.com
*.example.com → mail.example.com, shop.example.com, api.example.com
Ограничение: Wildcard не покрывает поддомены второго уровня. dev.api.example.com потребует отдельного сертификата или Multi-Domain Wildcard.
Защищает несколько разных доменов одним сертификатом через расширение Subject Alternative Name (SAN):
example.com
example.org
shop.another-domain.com
Базовая стоимость обычно включает 3–5 доменов, с возможностью добавления до 100–250 дополнительных. Часто используется для Microsoft Exchange, Office 365 и мультидоменных сервисов.
Комбинация Multi-Domain и Wildcard — один сертификат защищает несколько доменов вместе с их поддоменами. Наиболее гибкий и самый дорогой вариант (от $200/год).
| Тип | Покрытие | Стоимость | Применение |
|---|---|---|---|
| Single Domain | 1 домен (+ www) | $0–100/год | Один сайт |
| Wildcard | Домен + поддомены 1-го уровня | $50–300/год | Сайт с поддоменами |
| Multi-Domain (SAN) | 3–250 разных доменов | $100–400/год | Несколько проектов |
| Multi-Domain Wildcard | Несколько доменов + их поддомены | $200–600/год | Крупная инфраструктура |
Let's Encrypt — наиболее популярный бесплатный CA. Особенности:
ZeroSSL — альтернатива с веб-интерфейсом: бесплатно до 3 сертификатов на 90 дней, есть ACME и REST API, платные тарифы с Wildcard и мониторингом.
Google Trust Services — бесплатные DV-сертификаты через ACME с интеграцией в Google Cloud.
| CA | DV | OV | EV | Особенности |
|---|---|---|---|---|
| Sectigo | от $12/год | от $70/год | от $180/год | Крупнейший коммерческий CA, гарантия до $1.75M |
| DigiCert | от $238/год | от $398/год | от $498/год | Премиум-сегмент, гарантия до $2M |
| GlobalSign | от $249/год | от $349/год | от $599/год | Корпоративный сегмент |
Бесплатный DV достаточен для большинства проектов. Платный сертификат оправдан, если:
| Проект | Уровень | Тип | CA |
|---|---|---|---|
| Личный блог | DV | Single Domain | Let's Encrypt |
| Лендинг | DV | Single Domain | Let's Encrypt / ZeroSSL |
| Интернет-магазин (малый) | DV / OV | Single / Wildcard | Let's Encrypt / Sectigo |
| Интернет-магазин (крупный) | OV / EV | Wildcard / Multi-Domain | DigiCert / GlobalSign |
| Корпоративный портал | OV | Wildcard | Sectigo / DigiCert |
| SaaS-платформа | OV | Wildcard | DigiCert / GlobalSign |
| Банк / финтех | EV | Multi-Domain | DigiCert / GlobalSign |
| Сеть микросервисов | DV | Wildcard | Let's Encrypt |
| Внутренний сервис | DV | Wildcard | Let's Encrypt / частный CA |
1. Обрабатываете платежи напрямую?
├── Да → EV или OV + Multi-Domain
└── Нет → п.2
2. Требуется идентификация организации?
├── Да → OV
└── Нет → DV
3. Сколько доменов/поддоменов?
├── 1 домен, без поддоменов → Single Domain
├── 1 домен + поддомены → Wildcard
├── Несколько доменов → Multi-Domain (SAN)
└── Несколько доменов + поддомены → Multi-Domain Wildcard
4. Бюджет критичен?
├── Да → Let's Encrypt
└── Нет → коммерческий CA
sudo apt update && sudo apt install certbot
# Для Nginx
sudo apt install python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
# Для Apache
sudo apt install python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com
# Wildcard (DNS-верификация)
sudo certbot certonly --manual --preferred-challenges dns \
-d example.com -d "*.example.com"
# Автоматическое продление
sudo certbot renew --dry-run
Для Wildcard Certbot попросит создать TXT-запись _acme-challenge.example.com. После проверки DNS сертификат будет выдан.
Альтернативный ACME-клиент, работает без root:
curl https://get.acme.sh | sh -s email=admin@example.com
# Через webroot
acme.sh --issue -d example.com -w /var/www/html
# Wildcard через Cloudflare DNS API
export CF_Token="your_token"
acme.sh --issue -d example.com -d "*.example.com" --dns dns_cf
# Установка для Nginx
acme.sh --install-cert -d example.com \
--key-file /etc/ssl/private/example.com.key \
--fullchain-file /etc/ssl/certs/example.com.crt \
--reloadcmd "systemctl reload nginx"
Процесс принципиально отличается — полная автоматизация невозможна:
openssl req -new -newkey rsa:2048 -nodes \
-keyout example.com.key -out example.com.csr \
-subj "/C=RU/ST=Moscow/L=Moscow/O=My Company LLC/CN=example.com"
Для EV дополнительно потребуются учредительные документы, подтверждение полномочий заявителя и обратный звонок на публичный номер организации.
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/ssl/certs/chain.crt;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
root /var/www/example.com;
index index.html;
}
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/example.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/private/example.com.key
SSLCertificateChainFile /etc/ssl/certs/chain.crt
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLUseStapling on
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</VirtualHost>
SSLStaplingCache shmcb:/var/run/ocsp(128000)
# Проверка конфигурации
sudo nginx -t # Nginx
sudo apachectl configtest # Apache
# Информация о сертификате
openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | \
openssl x509 -noout -text
# Срок действия
openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | \
openssl x509 -noout -dates
# Цепочка сертификатов
openssl s_client -connect example.com:443 -servername example.com -showcerts 2>/dev/null
Помимо ручной проверки, полезно прогнать сертификат через Проверку SSL на reChecker — инструмент выявляет неполную цепочку доверия, устаревшие протоколы, слабые шифры и ошибки в SAN.
Заодно проверьте заголовки безопасности — в первую очередь HSTS, чтобы убедиться, что браузеры принудительно используют HTTPS.
Просроченный сертификат — одна из самых частых причин недоступности сайта. Браузеры полностью блокируют доступ к таким ресурсам, показывая пугающее предупреждение.
# Срок действия
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | \
openssl x509 -noout -enddate
# Дней до истечения
EXPIRY=$(echo | openssl s_client -connect example.com:443 \
-servername example.com 2>/dev/null | \
openssl x509 -noout -enddate | cut -d= -f2)
DAYS=$(( ($(date -d "$EXPIRY" +%s) - $(date +%s)) / 86400 ))
echo "Дней до истечения: $DAYS"
#!/bin/bash
DOMAINS=("example.com" "shop.example.com" "api.example.com")
WARN=30; CRIT=7
for d in "${DOMAINS[@]}"; do
exp=$(echo | openssl s_client -connect "$d:443" -servername "$d" 2>/dev/null | \
openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
[ -z "$exp" ] && echo "[ОШИБКА] $d — сертификат недоступен" && continue
left=$(( ($(date -d "$exp" +%s) - $(date +%s)) / 86400 ))
if [ "$left" -le "$CRIT" ]; then
echo "[КРИТИЧНО] $d — $left дн."
elif [ "$left" -le "$WARN" ]; then
echo "[ВНИМАНИЕ] $d — $left дн."
else
echo "[OK] $d — $left дн."
fi
done
Запуск по cron с уведомлением на почту:
0 9 * * * /opt/scripts/ssl-check.sh 2>&1 | grep -v "\[OK\]" | mail -s "SSL Alert" admin@example.com
Для постоянного контроля используйте специализированные инструменты:
Пример алерта в Prometheus:
groups:
- name: ssl
rules:
- alert: SSLCertExpiringSoon
expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 30
for: 1h
labels:
severity: warning
annotations:
summary: "SSL-сертификат {{ $labels.instance }} истекает через {{ $value | humanizeDuration }}"
- alert: SSLCertExpiryCritical
expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 7
for: 1h
labels:
severity: critical
SSL-сертификат — часть общей инфраструктуры безопасности. Проверьте DNS-записи через DNS Lookup, чтобы убедиться в наличии CAA-записей:
dig CAA example.com
# Ожидаемый результат для Let's Encrypt:
# example.com. IN CAA 0 issue "letsencrypt.org"
# example.com. IN CAA 0 issuewild "letsencrypt.org"
CAA ограничивает список CA, которые могут выпускать сертификаты для вашего домена — дополнительная защита от несанкционированного выпуска.
Неполная цепочка сертификатов — сервер отдаёт конечный сертификат без промежуточных:
cat example.com.crt intermediate.crt > fullchain.crt
Укажите fullchain.crt в директиве ssl_certificate (Nginx) или SSLCertificateChainFile (Apache).
Клиент и сервер не могут согласовать протокол. Убедитесь, что включены TLS 1.2 и TLS 1.3, а устаревшие SSLv3 и TLS 1.0/1.1 отключены.
Страница загружается по HTTPS, но часть ресурсов запрашивается по HTTP:
curl -s https://example.com | grep -oP 'http://[^"'"'"'> ]+'
Решение — обновить URL ресурсов или добавить заголовок CSP upgrade-insecure-requests.
Обычно связана с несоответствием SNI. Если на одном IP размещено несколько сайтов, сервер должен поддерживать Server Name Indication для выбора правильного сертификата.
Выбор SSL-сертификата сводится к трём вопросам: уровень проверки (DV, OV, EV), количество доменов (Single, Wildcard, Multi-Domain) и бюджет (бесплатный Let's Encrypt или коммерческий CA).
Для большинства проектов бесплатного DV-сертификата от Let's Encrypt достаточно. OV оправдан для компаний, которым важна идентификация организации. EV остаётся выбором финансовых сервисов, где максимальный уровень доверия критичен.
Два правила неизменны: настройте автоматическое продление (просроченный сертификат хуже его отсутствия) и мониторьте состояние через SSL-мониторинг или собственные скрипты, чтобы узнавать о проблемах раньше пользователей. Правильно настроенный SSL — фундамент безопасности, доверия и SEO-позиций вашего проекта.