Довідник помилок / ERR_SSL_UNRECOGNIZED_NAME_ALERT
ERR_SSL_UNRECOGNIZED_NAME_ALERT
ERR_SSL_UNRECOGNIZED_NAME_ALERT - це повідомлення Chrome про сервер, який обірвав захищене зʼєднання, бо не впізнав запитане імʼя сайту. На самому початку HTTPS, ще до надсилання сертифіката, браузер повідомляє серверу, який хост йому потрібен (це називається SNI). Сервер переглянув сайти, які обслуговує, не знайшов жодного з таким імʼям і відповів фатальним сигналом unrecognized_name. Firefox показує те саме як SSL_ERROR_UNRECOGNIZED_NAME_ALERT. Рукостискання обривається ще до обміну сертифікатами, тож прострочений чи неправильний сертифікат тут ні до чого, і очищення кешу браузера не допоможе.
Перевірте свій сайт
Через що виникає
Набране імʼя приходить на сервер, у якого для нього немає налаштувань. Найчастіше DNS вказує не на той сервер: новий хостинг-акаунт, куди домен так і не додали, старий сервер після переїзду або спільна IP, з якої сайт прибрали. Далі йде відсутній аліас: сайт налаштовано для example.com, але не для www.example.com чи піддомену, тож не працює лише одна форма. В Apache це означає, що імені немає ні в ServerName, ні в ServerAlias HTTPS-віртуального хоста, у nginx його немає в server_name, а сервер за замовчуванням відхиляє невідомі імена (ssl_reject_handshake on), в IIS HTTPS-привʼязка вимагає SNI для іншого імені хоста. Так само поводиться CDN, балансувальник чи зворотний проксі перед сайтом, якщо до нього не додали це імʼя. Якщо помилка зʼявляється лише на одному компʼютері, причина локальна: запис у файлі hosts, застарілий кеш DNS, VPN або антивірус, що перехоплює HTTPS.
Як виправити
- Запустіть перевірку на цій сторінці саме для того імені, що не відкривається, з www чи піддоменом, якщо ви відкриваєте саме їх. Наш сервер передає це імʼя в SNI так само, як Chrome. Якщо перевірка не може встановити TLS-зʼєднання для цього імені, але працює для іншої форми, з www чи без, сервер просто не знає цього імені. Якщо перевірка проходить і показує дійсний сертифікат, для решти світу сервер працює, а проблема на компʼютері чи в мережі, де ви бачите помилку.
- Перевірте, куди вказує імʼя. DNS-перевірка на цьому сайті показує A- та AAAA-записи для проблемного імені; порівняйте IP з тією, що вказана в панелі хостингу чи на сервері. Інша IP означає, що DNS відправляє відвідувачів на сервер, який про сайт ніколи не чув: виправте запис або додайте домен на тому сервері. Подивіться й на AAAA: якщо IPv6-адреса вказує на старий сервер, помилку бачать лише відвідувачі з IPv6.
- Додайте імʼя на сервері. В Apache впишіть його в ServerName або ServerAlias віртуального хоста на порту 443 і перезавантажте конфігурацію. У nginx додайте його в server_name блоку server, що слухає 443 з ssl. У cPanel та подібних панелях додайте його як аліас, додатковий домен або піддомен сайту, залежно від того, що це. В IIS додайте HTTPS-привʼязку для цього імені хоста. Потім випустіть сертифікат, що покриває нове імʼя, інакше помилка зміниться на попередження про сертифікат.
- Якщо перед сайтом стоїть CDN чи проксі, додайте імʼя хоста і туди. У Cloudflare це має бути проксійований DNS-запис у зоні; в інших CDN і балансувальниках імʼя треба вказати в налаштуваннях сайту чи слухача разом із сертифікатом. Перевірка на цій сторінці бачить відповідь CDN, тож повторіть її після зміни.
- З терміналу поведінку сервера можна підтвердити напряму: openssl s_client -connect IP-СЕРВЕРА:443 -servername проблемне-імʼя.com. «alert number 112» або «unrecognized name» у виводі - це саме ця відмова; ланцюжок сертифікатів означає, що сервер приймає імʼя.
- Якщо помилку бачить лише ваш компʼютер, пошукайте домен у файлі hosts, очистіть кеш DNS (ipconfig /flushdns у Windows), вимкніть VPN і перевірку HTTPS в антивірусі та спробуйте іншу мережу. Якщо помилка зникне, сайт ніколи й не був проблемою.