Knowledge Base

Диагностика ERR_CERT_COMMON_NAME_INVALID

Почему возникает ошибка

Категория: SSL/TLS · Риск: low

Почему возникает ошибка

Современные браузеры (Chrome с 2017, Firefox аналогично) **игнорируют CN** и проверяют только **SAN (Subject Alternative Names)**. Если домен, к которому вы обращаетесь, отсутствует в SAN — браузер блокирует соединение.

Частые причины

| Причина | Решение | |---------|---------| | Сертификат выдан только на `example.com`, а обращение идёт на `www.example.com` | Перевыпустить с обоими доменами | | IP в URL, а в SAN только доменное имя | Добавить `IP:x.x.x.x` в SAN | | Сертификат для `api.example.com`, а запрос на `api2.example.com` | Wildcard или отдельный сертификат | | CDN подставляет свой сертификат, но не настроен для вашего домена | Добавить домен в настройки CDN |

Как перевыпустить сертификат с нужными SAN

# Let's Encrypt — добавить оба домена
certbot certonly --nginx \
  -d example.com \
  -d www.example.com \
  -d api.example.com

# Проверить результат
openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem \
  -noout -ext subjectAltName

Wildcard-сертификат

# Wildcard покрывает *.example.com (один уровень)
certbot certonly --manual \
  --preferred-challenges dns \
  -d example.com \
  -d "*.example.com"

> **Важно:** `*.example.com` не покрывает `sub.sub.example.com` — нужен отдельный wildcard второго уровня.