Кириллический домен выглядит понятно человеку, но не машине. DNS, веб-серверы, SSL-сертификаты и почтовые серверы работают с латиницей, цифрами и дефисом. Поэтому пример.рф в технических настройках хранится как xn--e1afmkfd.xn--p1ai — и без этой записи сайт не заработает. Punycode — инструмент, который переводит кириллические и другие международные домены в ASCII-форму и обратно, принимает сразу несколько доменов, адресов и e-mail и предупреждает о доменах, которые маскируются под латинские.
В этой статье разберём, зачем нужен Punycode, как он работает, что такое IDN и IDNA, почему регистр букв меняется и как распознать фишинговый домен из похожих букв.

Что такое Punycode и зачем он нужен
Punycode — способ записи нелатинских доменов с помощью символов ASCII. Он позволяет DNS, который исторически понимает только латиницу, цифры и дефис, работать с доменами на кириллице, арабском, китайском и других письменностях.
Схема простая:
- Домен
пример.рфсодержит кириллицу. DNS такую строку не примет. - Специальный алгоритм кодирует кириллическую часть в ASCII и добавляет префикс
xn--. - Получается
xn--e1afmkfd.xn--p1ai— это и есть Punycode-запись, которую понимают все технические системы.
Префикс xn-- — маркер: он говорит, что перед нами закодированный международный домен, а не обычный латинский.
Где нужна ASCII-запись домена
Практически везде, где домен попадает в техническую настройку, а не в строку браузера.
DNS. В записях зоны домен хранится в Punycode. Если вы настраиваете поддомен для кириллического домена, в панели DNS он будет в ASCII-форме.
Веб-сервер. В конфигурации виртуальных хостов (nginx, Apache) имя сервера указывается в Punycode. Иначе сервер не сопоставит запрос с нужным сайтом.
SSL-сертификаты. Сертификаты на кириллические домены выпускаются на Punycode-имя. В некоторых панелях управления сертификатами нужно указывать именно ASCII-форму.
Почтовые серверы. При настройке почты для кириллического домена в записях MX, SPF, DKIM доменная часть указывается в Punycode.
Некоторые программы и API. Не все библиотеки автоматически конвертируют IDN. Если программа не понимает кириллицу в домене, ей нужна ASCII-форма.
Как работает инструмент
Punycode принимает домены, адреса сайтов или e-mail — по одному в строке, не больше 200 за раз. В адресах и e-mail преобразуется только доменная часть: https://пример.рф/страница превратится в https://xn--e1afmkfd.xn--p1ai/страница, а user@пример.рф — в user@xn--e1afmkfd.xn--p1ai.
Направление перевода можно выбрать явно или оставить «Определить автоматически» — инструмент сам поймёт, что перед ним: кириллический домен или уже Punycode-запись.
Результат показывается таблицей: исходное значение, результат и замечания. Если с доменом что-то не так, в колонке «Замечания» будет предупреждение.
Всё выполняется в браузере: введённые данные никуда не отправляются. Это важно, если вы работаете с внутренними доменами или адресами, которые не хотите раскрывать.
Предупреждение о похожих буквах: что это и почему важно
Это самая полезная функция инструмента для безопасности. Кириллические буквы а, е, о, р, с визуально неотличимы от латинских a, e, o, p, c. Домен, собранный из таких букв, выглядит как настоящий, но ведёт на другой сайт.
Пример: аррӏе.com — здесь первая «а» кириллическая, а «ӏ» — не латинская «l», а другая буква. Визуально домен похож на известный бренд, но это другой адрес. Так устроены фишинговые атаки: пользователь не замечает подмены и вводит данные на чужом сайте.
Инструмент предупреждает о таких доменах в колонке «Замечания». Если вы видите предупреждение:
- Проверьте, тот ли это сайт, который вы ожидали.
- Сравните Punycode-запись с ожидаемой: у настоящего домена она будет другой.
- Не вводите данные на домене, который вызывает сомнения.
Это не значит, что любой домен с похожими буквами — мошеннический. Кириллические домены легальны, и некоторые бренды используют их специально. Но предупреждение стоит воспринимать серьёзно.
Почему регистр букв меняется
Доменные имена не различают регистр: Пример.РФ и пример.рф — один и тот же домен. По стандарту IDNA перед переводом в Punycode буквы приводятся к нижнему регистру. Поэтому в результате вы увидите пример.рф, даже если ввели Пример.РФ.
Это не ошибка и не потеря данных — так требует стандарт. DNS хранит домены в нижнем регистре, и любые другие варианты приводятся к нему.
IDN и IDNA: что это такое
Два термина, которые часто встречаются рядом с Punycode.
IDN (Internationalized Domain Name) — международное доменное имя. Это домен, который может содержать нелатинские символы: пример.рф, 例え.jp, مثال.إختبار. Идея IDN — позволить людям вводить домены на своём языке.
IDNA (Internationalized Domain Names in Applications) — стандарт, который описывает, как IDN преобразуются в ASCII и обратно. Punycode — это алгоритм кодирования, а IDNA — правила, по которым он применяется: какие символы допустимы, как обрабатывается регистр, как проверяется валидность.
Проще: IDN — что, IDNA — как, Punycode — алгоритм.
Punycode и WHOIS: где что смотреть
Эти инструменты дополняют друг друга.
Punycode — конвертирует домен между кириллицей и ASCII-формой. Нужен, когда вы настраиваете DNS, сервер или сертификат.
WHOIS — показывает регистрационные данные домена. В результатах кириллический домен часто отображается именно в Punycode-форме, потому что реестр хранит его в ASCII.
Если вы проверяете домен через WHOIS и видите xn--... вместо кириллицы — это нормально. Чтобы понять, что это за домен, переведите его обратно через Punycode-конвертер.
Типичные ошибки
Вводить кириллицу в настройки DNS напрямую. DNS не примет нелатинские символы. Нужна Punycode-форма.
Путать Punycode с URL-кодированием. Это разные вещи. URL-кодирование (%D0%BF…) применяется к символам в адресе страницы, а Punycode — к доменному имени. Для URL-кодирования есть отдельный инструмент.
Игнорировать предупреждение о похожих буквах. Если инструмент предупреждает, что домен маскируется под латинский, — проверьте, тот ли это сайт. Это может быть фишинг.
Удивляться смене регистра. Домены не различают регистр, и стандарт IDNA приводит буквы к нижнему регистру. Это ожидаемое поведение.
Конвертировать домен вместе с путём и параметрами. Инструмент преобразует только доменную часть. Путь и параметры остаются как есть — и это правильно: Punycode применяется только к домену.
Забывать про лимит строк. За раз можно обработать не больше 200 строк. Если доменов больше — разбейте на партии.
Вопросы и ответы
Зачем нужен Punycode? DNS работает только с латиницей, цифрами и дефисом. Домен пример.рф хранится в DNS как xn--e1afmkfd.xn--p1ai. Эта запись нужна в настройках DNS, веб-сервера, SSL-сертификата и в некоторых программах.
Что значит предупреждение о похожих буквах? Кириллические «а», «е», «о», «р», «с» выглядят как латинские. Домен из таких букв визуально не отличить от настоящего — так устроены фишинговые адреса. Проверьте, тот ли это сайт, который вы ожидали.
Почему регистр букв меняется? Доменные имена не различают регистр. По стандарту IDNA перед переводом в Punycode буквы приводятся к нижнему регистру.
Можно ли конвертировать несколько доменов сразу? Да, по одному в строке, не больше 200 за раз. В адресах и e-mail преобразуется только доменная часть.
Отправляются ли данные на сервер? Нет, конвертация выполняется в браузере. Введённые домены и адреса никуда не отправляются.
Итог
Punycode — инструмент для перевода кириллических и других международных доменов в ASCII-запись и обратно. Он нужен везде, где домен попадает в технические настройки: DNS, веб-сервер, SSL-сертификат, почта. Инструмент поддерживает пакетную обработку адресов и e-mail, работает в браузере и предупреждает о доменах, которые маскируются под латинские, — это помогает не попасться на фишинг. Зная, зачем нужен Punycode и почему регистр меняется, вы сможете настроить кириллический домен без лишних ошибок и вовремя заметить подозрительный адрес.