# ZRAZU > ZRAZU — украинский регистратор доменов и SSL-сертификатов: домены .UA и международные, DNS, SSL с автоматическим обновлением, кабинет клиента. Ниже — документация для людей и ИИ-агентов; каждая страница есть и в Markdown. ## Домены - [Как зарегистрировать домен](https://zrazu.com/ru/docs/domains-register.md): Найдите свободное имя, добавьте его в корзину, выберите владельца, примите документы реестра и оплатите. Обычно домен становится вашим меньше чем за минуту. - [Перенос домена в ZRAZU](https://zrazu.com/ru/docs/domains-transfer-in.md): Как перенести домен от другого регистратора: проверка, код переноса, выбор DNS, оплата и сроки. Что делать, если код не подошёл. - [Продление и автопродление домена](https://zrazu.com/ru/docs/domains-renew.md): Как продлить домен вручную, включить автопродление с баланса, какие напоминания мы отправляем и как сознательно отпустить домен. - [Владелец и контакты домена](https://zrazu.com/ru/docs/domains-owner-contacts.md): Как создать контакт, назначить владельца и сменить его: пауза 72 часа, согласие нового владельца в течение 14 дней и что видно в WHOIS. - [Перенос домена от ZRAZU](https://zrazu.com/ru/docs/domains-transfer-out.md): Как получить код переноса, чтобы перевести домен к другому регистратору: снять замок, запросить код в кабинете и почему код приходит только письмом. - [Массовые действия с доменами](https://zrazu.com/ru/docs/domains-bulk.md): Как изменить автопродление, напоминания, замок переноса или серверы имён сразу для многих доменов, остановить пачку и откатить изменения. ## DNS - [DNS-зона на серверах ZRAZU — как включить](https://zrazu.com/ru/docs/dns-zone.md): Бесплатный DNS на серверах ZRAZU: какие серверы имён указать, как включить зону для домена, менять записи, отменить правку и вернуть прежнюю ревизию. - [Записи DNS для сайта и почты — примеры](https://zrazu.com/ru/docs/dns-records.md): Какие записи добавить для сайта (A, AAAA, CNAME) и почты (MX, SPF, DKIM, DMARC) в DNS-зоне ZRAZU, с готовыми примерами и пояснением каждого поля. - [Домен другого регистратора и Cloudflare](https://zrazu.com/ru/docs/dns-external.md): Как вести DNS-зону на серверах ZRAZU для домена другого регистратора, указать собственные серверы имён и подключить Cloudflare по ключу API в кабинете. - [DNSSEC для домена на серверах ZRAZU](https://zrazu.com/ru/docs/dns-dnssec.md): Как включить и выключить DNSSEC для домена на DNS ZRAZU: что значит подпись зоны, где взять DS-запись и что делать с DS, оставшимся от прежнего провайдера. - [Переадресация домена на другой адрес](https://zrazu.com/ru/docs/dns-forward.md): Как настроить переадресацию домена в ZRAZU: корень и www открывают указанный адрес с кодом 301 или 302, с сохранением пути и параметров или без него. ## SSL-сертификаты - [Типы SSL-сертификатов в ZRAZU](https://zrazu.com/ru/docs/ssl-overview.md): DV, Wildcard, Multi-domain, OV и EV: чем отличаются сертификаты, когда хватит бесплатного и как работает подписка на 1 год с обновлением частями. - [Заказ и активация сертификата](https://zrazu.com/ru/docs/ssl-order.md): Как заказать платный SSL в кабинете: домен, CSR со своим ключом, дополнительные имена, оплата любым способом. Как активировать после оплаты. - [Подтверждение домена для сертификата](https://zrazu.com/ru/docs/ssl-dcv.md): Как доказать, что домен ваш: запись DNS, файл на сайте или письмо. Автоматическое добавление записи для доменов на DNS ZRAZU и в Cloudflare, типичные ошибки. - [Файлы сертификата и установка на сервер](https://zrazu.com/ru/docs/ssl-files.md): Какие файлы выдаёт ZRAZU после выпуска: fullchain, cert, chain. Как собрать PFX для IIS и Windows и куда их положить. Закрытый ключ остаётся у вас. - [Перевыпуск и отзыв сертификата](https://zrazu.com/ru/docs/ssl-reissue.md): Когда перевыпустить сертификат с новым CSR, что будет со сроком и оплатой, как отозвать сертификат, если ключ утёк, и что с возвратом денег. - [ACME для certbot, acme.sh и Caddy](https://zrazu.com/ru/docs/ssl-acme.md): Как сервер сам выпускает и обновляет сертификат: ACME-сервер ZRAZU для платных сертификатов и acme-dns для бесплатных, включая wildcard. ## SSL: автоматическое обновление - [Как работает автоматическое обновление сертификата](https://zrazu.com/ru/docs/ssl-auto.md): Как SSL-сертификат ZRAZU обновляется на сайте сам: личная ссылка, задача по расписанию на вашей стороне и выбор инструкции под свой хостинг. - [Сервер Linux — nginx, Apache, Caddy, HAProxy, Docker](https://zrazu.com/ru/docs/ssl-auto-linux.md): Скрипт для nginx, Apache, Caddy, HAProxy и Docker раз в сутки забирает свежий сертификат, сверяет его с вашим ключом и перезапускает сервер без простоя. - [Windows Server и IIS](https://zrazu.com/ru/docs/ssl-auto-windows-iis.md): Задание Планировщика Windows раз в сутки забирает свежий сертификат, привязывает его к ключу в хранилище Windows и к сайту IIS. - [Kubernetes — сертификат в TLS-секрете обновляется сам](https://zrazu.com/ru/docs/ssl-auto-kubernetes.md): CronJob раз в сутки забирает свежий сертификат и обновляет TLS-секрет, с которым работает ingress; ключ остаётся в том же секрете. - [Хостинг с cPanel — сертификат обновляется сам](https://zrazu.com/ru/docs/ssl-auto-cpanel.md): Задача cron в cPanel раз в сутки забирает свежий сертификат и ставит его на сайт через встроенный инструмент cPanel. SSH не нужен. - [Панели хостинга без автоматики — обновление вручную](https://zrazu.com/ru/docs/ssl-auto-panels-manual.md): adm.tools, Cityhost, Mirohost, ISPmanager, Plesk, DirectAdmin, Hostinger, Hetzner: где в панели заменить сертификат, что вставить и как не пропустить срок. - [AWS — балансировщик, CloudFront, API Gateway](https://zrazu.com/ru/docs/ssl-auto-aws.md): Функция Lambda раз в сутки забирает свежий сертификат и обновляет его в AWS Certificate Manager на том же ARN — балансировщик подхватит сам. - [Azure — Application Gateway, App Service, Front Door](https://zrazu.com/ru/docs/ssl-auto-azure.md): Runbook Azure Automation раз в сутки забирает свежий сертификат и добавляет новую версию в Key Vault — сервисы Azure подхватывают её сами. - [Google Cloud — балансировщик с Certificate Manager](https://zrazu.com/ru/docs/ssl-auto-gcp.md): Задача Cloud Run по расписанию Cloud Scheduler раз в сутки обновляет сертификат в Certificate Manager на месте — балансировщик подхватывает его сам. - [Cloudflare перед сайтом](https://zrazu.com/ru/docs/ssl-auto-cloudflare.md): Сайт за Cloudflare: на Free и Pro наш сертификат стоит на вашем сервере, на Business и Enterprise — обновляется в Cloudflare скриптом через API. - [Конструкторы сайтов — Tilda, Wix, Shopify, Prom, Horoshop](https://zrazu.com/ru/docs/ssl-auto-site-builders.md): Tilda, Wix, Shopify, Prom, Horoshop и другие конструкторы сами дают бесплатный сертификат и не принимают чужой — покупать SSL для сайта не нужно. - [Ссылка на сертификат — справка для разработчиков](https://zrazu.com/ru/docs/ssl-auto-pull-api.md): Адреса, форматы, коды ответа, условные запросы, лимиты и правила безопасности личной ссылки на сертификат — для своих интеграций и ИИ-агентов. ## Мониторинг - [Что проверяет мониторинг ZRAZU](https://zrazu.com/ru/docs/monitoring-checks.md): Мониторинг следит за доменом, делегированием, DNSSEC, сертификатом, почтой и сайтом и пишет, только когда что-то действительно сломалось. - [Добавить домены в мониторинг и тариф](https://zrazu.com/ru/docs/monitoring-add.md): Как поставить домены других регистраторов на мониторинг списком, файлом CSV или из Cloudflare и как работают бесплатный и платные тарифы. - [Уведомления и инциденты мониторинга](https://zrazu.com/ru/docs/monitoring-alerts.md): Куда приходят тревоги о домене, как подключить почту, Telegram или вебхук, настроить тихие часы и что делать, когда открыт инцидент. ## Кабинет и оплата - [Начало работы: регистрация, вход, организация](https://zrazu.com/ru/docs/account-start.md): Как создать аккаунт ZRAZU, войти паролем, ссылкой на почту или ключом доступа, создать организацию и переключаться между организациями в кабинете. - [Команда и роли в организации](https://zrazu.com/ru/docs/account-team.md): Как пригласить коллегу в организацию, какую роль ему дать, что умеет каждая роль, как сменить роль или убрать человека и где смотреть журнал входов. - [Безопасность входа: ключ доступа, код, сессии](https://zrazu.com/ru/docs/account-security.md): Как защитить аккаунт ZRAZU: добавить passkey или код из приложения, сохранить резервные коды, сменить пароль и почту, закрыть чужие сессии, вернуть доступ. - [Баланс и оплата: карта и счёт на IBAN](https://zrazu.com/ru/docs/account-balance.md): Как пополнить баланс ZRAZU картой или по счёту на IBAN, сохранить карту, оплатить заказ и что делать, если оплата не прошла. - [Счета, акты и плательщики](https://zrazu.com/ru/docs/account-documents.md): Как добавить плательщика, чтобы получать счета и акты на компанию или ФЛП, где их найти и скачать и как выгрузить историю денег в CSV. - [Обращения в поддержку из кабинета](https://zrazu.com/ru/docs/account-support.md): Как написать в поддержку ZRAZU из кабинета, почты или Telegram, что указать в обращении, как следить за ответом и чего поддержка никогда не делает. ## API и MCP - [API ZRAZU — обзор для разработчиков](https://zrazu.com/ru/docs/api-overview.md): Базовый адрес, вход по ключу, идемпотентность, формат ошибок и лимиты API ZRAZU — для своих скриптов, интеграций и ИИ-агентов. - [Ключи API — как создать и ограничить](https://zrazu.com/ru/docs/api-keys.md): Как создать ключ API в кабинете ZRAZU, выбрать права, домены, IP-адреса и срок, а также отозвать ключ, если он попал не в те руки. - [Домены и DNS через API — примеры](https://zrazu.com/ru/docs/api-domains-dns.md): Примеры запросов к API ZRAZU: список доменов, мониторинг, чтение зоны DNS, изменение записей, новая зона и проверка делегирования. - [MCP для ИИ-агентов — паспорт домена](https://zrazu.com/ru/docs/api-mcp.md): Как подключить MCP-сервер ZRAZU к Claude, ChatGPT или Cursor: адрес, инструмент паспорта домена, лимиты и то, чего агент не видит. ## Реселлерам и студиям - [Как стать реселлером ZRAZU](https://zrazu.com/ru/docs/resellers-program.md): Как продавать домены .UA и SSL из своего биллинга по оптовым ценам: анкета в кабинете, договор, песочница, боевой логин. Кто может подать заявку. - [Подключение EPP в кабинете реселлера](https://zrazu.com/ru/docs/resellers-epp.md): Как реселлеру создать логин песочницы, задать пароль, добавить адреса IP и сертификат, подтвердить массовые действия и отозвать доступ в кабинете ZRAZU. - [Прайс реселлера в кабинете](https://zrazu.com/ru/docs/resellers-prices.md): Где реселлер видит оптовые цены на домены и SSL рядом с розничными ценами витрины, в какой валюте они, как читать таблицу и почему она всегда свежая. - [Модули ZRAZU для WHMCS](https://zrazu.com/ru/docs/resellers-whmcs.md): Как реселлеру установить модули «ZRAZU Domains» и «ZRAZU SSL» в WHMCS: скачать архив, проверить в песочнице, выпустить ключ для боевого режима. - [Кабинет веб-студии](https://zrazu.com/ru/docs/resellers-studio.md): Как веб-студии вести домены клиентов в одном кабинете ZRAZU: вступление в программу, ступень по числу доменов, клиенты, цены, выписка за месяц и переносы. --- # Как зарегистрировать домен URL: https://zrazu.com/ru/docs/domains-register/ Регистрация домена занимает четыре шага: поиск, корзина, оформление и оплата. Всё делается в [кабинете](https://vse.zrazu.com/domains/new/). Цены на первый год смотрите на странице [цен](https://zrazu.com/prices/) и в самом поиске. Цифр здесь нет, чтобы они не устаревали. ## Что понадобится - Учётная запись и организация в кабинете. - Роль с правом оплаты: добавлять домены в корзину может только такая роль. - Контакт владельца в справочнике «Контакты» (шаг 4 ниже). Если его ещё нет, создайте заранее: [Владелец и контакты домена](https://zrazu.com/ru/docs/domains-owner-contacts.md). ## Шаг за шагом 1. Откройте **Домены → Новый домен**. 2. В поле «Имя или домен» введите имя, например `кава`, и нажмите **Найти**. Можно ввести и полный адрес, например example.com. 3. Просмотрите список зон. У свободных доменов есть кнопка добавления в корзину (**В корзину**). Если домен занят, можно нажать **Следить**: мы сообщим, когда он освободится. В поиске есть фильтры по группам зон: украинские, международные и новые. 4. Справа откроется корзина. Нажмите **Оформить**. Шаг «Имя» просит выбрать владельца домена: человека либо организацию или ФЛП. 5. Поставьте отметку **Я принимаю документы ниже**. Там оферта и документы реестров тех зон, что есть в вашем заказе (для `.UA` это регламент реестра). Редакции документов мы сохраняем вместе с заказом. 6. Оплатите: с баланса или по счёту в банк. Об оплате по счёту смотрите раздел «Деньги» в кабинете. 7. Дождитесь шага «Готово». Обычно регистрация занимает до минуты. Надпись «Домен ваш.» означает, что всё прошло. ## Кто может быть владельцем Владелец (в реестре его называют регистрантом) получает право на домен. Им может быть: - **человек**: имя и фамилия; - **организация или ФЛП**: название, а также код ЕГРПОУ или РНОКПП. Это влияет на WHOIS, публичный справочник реестра. Данные физического лица скрыты. Данные организации или ФЛП показаны полностью: название, адрес, почта и телефон. Владельца можно сменить позже, но это займёт 72 часа. В справочнике «Контакты» нельзя выбрать запись с пометкой «неполный адрес». Добавьте улицу, город и страну в карточке контакта. ## Если не получилось | Что видите | Что делать | | --- | --- | | «Эту зону сейчас не продаём» | Выберите другую зону. | | «Зону .укр мы не продаём» | Эта зона недоступна. Выберите другую. | | Нет кнопки добавления в корзину, есть надпись о роли | Попросите владельца или администратора организации добавить домен: нужна роль с правом оплаты. | | В списке владельцев пусто | Создайте контакт в **Домены → Контакты**: их заводят владелец или администратор организации. | | «Не вышло — команда ZRAZU вернула деньги на баланс» | Реестр отклонил регистрацию. Деньги уже на балансе, можно попробовать другое имя. | | «Не вышло — на рассмотрении команды ZRAZU» | Команда вернёт деньги на баланс или подаст заявку заново. Отдельно ничего делать не нужно. | | «Реестр отвечает дольше, чем обычно» | Страницу можно закрыть: состояние домена увидите в «Всех доменах». | | Банк ещё не подтвердил оплату | Если оплату не завершили, повторите. Если деньги списаны, напишите в поддержку с номером заказа. | --- # Перенос домена в ZRAZU URL: https://zrazu.com/ru/docs/domains-transfer-in/ Перенос переводит домен от другого регистратора к вам в ZRAZU. Перенос добавляет год к нынешнему сроку домена. После переноса мы ставим замок переноса и берём домен под наблюдение. Цену переноса смотрите на странице [цен](https://zrazu.com/prices/). ## Перед началом Перенести домен можно, когда выполнены все условия: - У нынешнего регистратора **снят замок переноса** (и замок изменений, если он есть). Снимите его в их кабинете. - С регистрации домена или с предыдущего переноса прошло **60 дней**. - Домен не удаляется и не переносится к кому-то другому прямо сейчас. - Домен в зоне, которую мы переносим. Это видно при проверке. - У вас есть **код переноса**. Его даёт нынешний регистратор в кабинете или по запросу. Это секрет: передавайте его только через форму в кабинете и никому не отправляйте в переписке или чате. Если срок домена почти вышел или даже истёк, но домен ещё не удаляется, перенести его можно: перенос продлит домен на год. ## Шаг за шагом 1. Откройте **Домены → Трансфер**. 2. Введите домен на вкладке **Один домен** или вставьте несколько на вкладке **Списком** (по одному в строке, через запятую или столбцом CSV, домен в первом столбце). За один раз проверяем до 30 доменов, до 10 проверок в час. 3. Нажмите **Проверить домен** (для списка **Проверить домены**). Мы только смотрим, что говорит реестр, и ничего не меняем. 4. Для каждого домена увидите состояние и подсказку. Если домен готов, введите код переноса в поле «Код». Код можно добавить и позже. 5. Нажмите **Оформить перенос**. Добавлять в корзину может владелец, администратор или бухгалтер организации. 6. Выберите, что делать с DNS после переноса (см. ниже). Без этого выбора перенос дальше не пойдёт. 7. Примите документы и оплатите заказ. Деньги за перенос берутся, когда реестр даёт окончательный ответ. Код из неоплаченной корзины мы стираем через 14 дней. ## DNS после переноса Окно «DNS после переноса» показывает, где сейчас серверы имён вашего домена и есть ли записи. Есть два варианта: - **Оставить эти серверы имён**: сайт и почта работают там, где сейчас. Мы ничего не трогаем. Если домен сейчас на DNS прежнего регистратора, то после переноса тот его отключит, и сайт и почта перестанут работать. В таком случае мы попросим отдельно подтвердить, что вы это понимаете. - **Перенести на DNS ZRAZU**: мы покажем найденные записи зоны. Уберите лишнее, добавьте нужное, поставьте отметку **Проверил записи**. Зону применим сразу после переноса. Снимок записей может быть неполным, поэтому проверьте его внимательно, особенно поддомены и DKIM. Изменить выбор можно кнопкой **Изменить выбор**. Для нескольких доменов есть кнопка **Оставить NS для всех**. Редактировать зону можно и потом в карточке домена. ## Сколько это длится Реестр передаёт запрос нынешнему регистратору, и тот отвечает до 5 дней. Если он молчит, реестр подтверждает перенос сам. Чтобы быстрее, попросите нынешнего регистратора подтвердить перенос. Это не обязательно. Состояние видно во «Всех доменах»: «Отправляем в реестр», «Переносится в ZRAZU», «Нужно внимание». Там же указано, до какого дня перенос завершится. ## Перенос многих доменов Если доменов много, используйте вкладку **Списком** на шаге 2. Если переносить не хотите, а только следить за доменом, в форме есть режим «Только следить» (до 25 доменов бесплатно). ## Если не получилось | Что видите | Что делать | | --- | --- | | «У нынешнего регистратора стоит замок переноса» | Снимите замок в кабинете нынешнего регистратора и добавьте домен снова. | | «Перенести можно с …: 60 дней после регистрации» | Дождитесь указанной даты. | | «Домен удаляется» | Перенести нельзя: вернуть домен может только нынешний регистратор. После этого переносите. | | «Уже переносится к другому регистратору» | Дождитесь завершения или отмените тот перенос у того регистратора. | | «Не зарегистрирован» | Домен свободен: его можно зарегистрировать. | | «Уже в вашем кабинете» | Переносить не нужно. | | «Эту зону мы пока не продаём» | Зону мы не переносим. | | «Код переноса — от 6 до 80 латинских букв, цифр и знаков без пробелов» | Скопируйте код заново, без пробелов по краям. | | «Код не подошёл» | Возьмите новый код у нынешнего регистратора и введите его во «Всех доменах» в поле «Новый код переноса», затем нажмите **Отправить снова**. | | «Нынешний регистратор отклонил перенос» | Узнайте у него причину, попросите не отклонять следующий запрос, возьмите новый код. | | «Перенос не удался» | Деньги остаются на балансе. Команда ZRAZU свяжется с вами. | --- # Продление и автопродление домена URL: https://zrazu.com/ru/docs/domains-renew/ Домен действует до определённой даты. Если его не продлить, после этой даты он перестанет работать, а потом его удалят из реестра, и имя сможет занять кто-то другой. Продлить можно вручную или доверить это автопродлению. Сумму продления вы видите в корзине до оплаты. Цифр здесь нет: цены смотрите на странице [цен](https://zrazu.com/prices/). ## Продление вручную 1. Откройте **Домены → Все домены** и выберите домен. 2. Нажмите **Продлить** (кнопка есть и вверху карточки, и в блоке «Срок и продление»). 3. Выберите, на сколько лет, и режим: с НДС или без НДС, в зависимости от плательщика. 4. Подтвердите в корзине и оплатите. После оплаты в карточке появится «Новый срок — до …». Срок не может быть длиннее 9 лет от сегодняшнего дня. После продления деньги не возвращаются. Продлевать и включать или выключать автопродление могут роли с правом платить. ## Автопродление Когда автопродление включено, мы списываем сумму с баланса организации за 30 дней до окончания срока по тарифу на этот день. Если не вышло (например, не хватает денег), повторяем попытку за 7 дней и за 1 день до конца. Держите на балансе достаточно средств. Переключатель найдёте в карточке домена, в блоке «Срок и продление» (**Автопродление**). Выключить автопродление намеренно сложнее: нужно ввести имя домена и подтвердить кодом из приложения или passkey. Так никто не выключит его случайно. ## Напоминания о сроке Мы отправляем письма за 60, 30, 15, 7 и 1 день до конца срока, а после него каждый день, пока домен не продлён. Напоминания можно выключить, тогда напишем только в день удаления домена. ## Отпустить домен Если домен вам больше не нужен, используйте **Отпустить домен…**. Мы выключим автопродление и напоминания. После конца срока домен удалят из реестра. Чтобы не ошибиться, нужно ввести имя домена и код из приложения или passkey. Передумали до конца срока: включите автопродление снова. ## Несколько доменов сразу Автопродление и напоминания можно изменить для многих доменов сразу: [Массовые действия](https://zrazu.com/ru/docs/domains-bulk.md). ## Если не получилось | Что видите | Что делать | | --- | --- | | «Срок уже на пределе: продлить можно не дальше чем на 9 лет от сегодняшнего дня» | Продлевать сейчас не нужно: срок и так длинный. | | «Срок ещё уточняем в реестре» | Подождите немного и обновите страницу. | | «Автопродление этого срока уже оплачено» | Ничего не делайте: домен уже продлевается. | | «Последний день продления прошёл — домен удаляется из реестра» | Продлить уже нельзя. Если домен нужен, напишите в поддержку. | | «Продление остановил оператор» | Переключатель и кнопка не действуют, пока продление не восстановят. Напишите в поддержку. | | Домен «заморожен на время спора» | Продление идёт как обычно, но контакты, серверы имён и замки не меняются. | | Не удалось списать автопродление | Пополните баланс: мы повторим попытку за 7 дней и за 1 день. | --- # Владелец и контакты домена URL: https://zrazu.com/ru/docs/domains-owner-contacts/ У каждого домена есть владелец (регистрант) и контакты: административный, технический и платёжный. Владелец имеет право на домен, поэтому сменить его сложнее, чем остальные контакты. ## Справочник «Контакты» Контакт — это данные для домена, а не доступ: входа в кабинет у него нет. Доступ коллегам дают в разделе «Команда». Создают и ведут контакты владелец и администраторы организации. 1. Откройте **Домены → Контакты** и нажмите **Новый контакт**. 2. Выберите вид: **человек** (имя, фамилия) или **организация или ФЛП** (подойдёт и для проверки SSL). 3. Заполните почту, телефон и адрес. 4. Нажмите **Создать контакт**. Правила полей: - имя или название: до 120 букв; - почта: латиницей, вида name@example.com; - телефон: цифры с кодом страны, например +380 44 123 45 67; - код ЕГРПОУ (8 цифр) или РНОКПП ФЛП (10 цифр) указывают только для организации или ФЛП; - почтовый индекс в Украине: 5 цифр. В справочнике может быть до 200 контактов, новых за сутки не больше 50. Контакт, который стоит на доменах, удалить не получится: сначала замените его там на другой. ## Что видно в WHOIS WHOIS — публичный справочник реестра. Данные физического лица скрыты (имя, адрес, почта, телефон). Данные организации или ФЛП публикуются полностью. На вкладке **Владелец** карточки домена есть блок «Что видно в WHOIS». ## Сменить административный, технический или платёжный контакт 1. Откройте карточку домена, вкладка **Владелец**. 2. В блоке «Контакты домена» напротив нужной роли нажмите **Заменить**, выберите запись справочника и нажмите **Применить**. Эти контакты меняются сразу. Письмо об изменении получают и новые, и прежние контакты. Если включён замок контактов, сначала снимите его на вкладке **Безопасность**: это занимает 72 часа. ## Сменить владельца Владельца домена меняют на вкладке **Владелец**, блок «Необратимые действия» (**Сменить владельца…**). Такая смена защищена от угона: 1. Выберите нового владельца из справочника, прочитайте заявление (**Показать заявление**) и введите имя домена для подтверждения. Затем подтвердите кодом из приложения или passkey. 2. Новый владелец получает письмо и должен согласиться в течение 14 дней. Для этого он открывает ссылку из письма: вход в кабинет не нужен. Открытие страницы ещё не согласие: сначала показывают текст заявления, потом согласие подтверждают отдельной кнопкой (или отказываются). 3. Смена вступает в силу через 72 часа после согласия. До этого действует нынешний владелец, а все контакты и владельцы организации получили письмо и могут отменить смену (**Отменить**). 4. Ещё 72 часа после смены мы не выдаём код переноса домена. Для некоторых зон администратор зоны требует письменное заявление: тогда после подтверждения нужно загрузить файл подписи `.p7s` над текстом заявления (квалифицированная электронная подпись). Файл не больше 256 КБ. Если владелец ещё не указан, первое назначение применяется сразу, без паузы. Если вы меняете владельца домена, данные которого привязаны к знаку для товаров и услуг, они должны совпадать со свидетельством на знак. ## Если не получилось | Что видите | Что делать | | --- | --- | | «Почта должна быть вида name@example.com» | Введите почту латиницей, без пробелов. | | «ЕГРПОУ — 8 цифр, РНОКПП ФЛП — 10 цифр» | Проверьте код. | | «Контакт стоит на доменах … Сначала замените его там» | Назначьте на этих доменах другой контакт, потом удаляйте. | | «Контакты доменов ведут владелец и администраторы организации» | Попросите их сделать изменение. | | «Такое изменение уже запланировано — дождитесь его или отмените» | Отмените предыдущее изменение или дождитесь его завершения. | | «Текст заявления изменился — просмотрите его заново» | Откройте заявление ещё раз и подтвердите. | | Домен заморожен на время спора | Контакты, серверы имён и замки не меняются до решения сторон, суда или UDRP. | --- # Перенос домена от ZRAZU URL: https://zrazu.com/ru/docs/domains-transfer-out/ Домен не привязан к нам навсегда: вы можете перевести его к любому другому регистратору. Для этого нужен код переноса. Это секрет, поэтому мы не показываем его на экране, а отправляем письмом владельцу домена (регистранту). Никто, включая поддержку, не просит код в чате. Нового регистратора вы выбираете сами: он подскажет, куда ввести код. ## Перед началом - Роль с правом выводить домен: в кабинете это владелец организации (у администратора такого права нет). - У домена указан владелец (регистрант): без него код некому отправить. - Домен не заморожен на время спора о праве. - После последней смены владельца, пароля, почты или контактов прошло 72 часа. - Если на серверах ZRAZU включён DNSSEC, выключите его на вкладке **DNS** и дождитесь снятия (до двух суток). Иначе после переноса домен может перестать открываться. ## Шаг за шагом 1. Откройте карточку домена: **Домены → Все домены**, затем нужный домен. 2. На вкладке **Безопасность** выключите **Замок переноса**. Подтвердите действие кодом из приложения или passkey. 3. На вкладке **Владелец** найдите блок **Код переноса** и нажмите **Отправить код владельцу**. Снова подтвердите действие. 4. Увидите «Запрос принят: код придёт письмом на …». Откройте письмо в почте владельца. 5. Введите код у нового регистратора и подтвердите перенос там. Код можно запросить один раз в сутки: пока запрос не выполнен, повторный не принимаем. Сам код в нашей базе не хранится. ## Что ещё стоит знать - Перед выходом убедитесь, что DNS и почта на новом месте настроены. Это можно сделать заранее. - Если домен вам больше не нужен, его не обязательно переносить: см. «Отпустить домен» в [продлении и автопродлении](https://zrazu.com/ru/docs/domains-renew.md). ## Если не получилось | Что видите | Что делать | | --- | --- | | Замок переноса включён | Снимите его на вкладке **Безопасность**, затем запросите код. | | «Код переноса уже запрошен — письмо придёт регистранту домена. Повторить можно через сутки» | Проверьте почту регистранта, в том числе «Спам». Новый запрос можно через сутки. | | «После смены владельца 72 часа код не выдаём — до …» | Дождитесь указанной даты. Так мы защищаем домен от угона. | | «Для домена включён DNSSEC на серверах ZRAZU…» | Выключите DNSSEC на вкладке **DNS**, дождитесь до двух суток. | | «У домена нет контакта регистранта — код некому отправить» | Назначьте владельца: [Владелец и контакты домена](https://zrazu.com/ru/docs/domains-owner-contacts.md). | | «Домен заморожен на время спора о праве» | Переноса нет до решения сторон, суда или UDRP. | | «Идёт восстановление доступа к аккаунту» | Код не выдаём до завершения восстановления. | | «Тот, кто запросил код, больше не имеет на это права» | Повторите запрос с учётной записи владельца организации. | --- # Массовые действия с доменами URL: https://zrazu.com/ru/docs/domains-bulk/ Если доменов много, не нужно открывать каждый. Выберите их в списке и выполните одно действие для всех. Такое действие называется пачкой. ## Что можно сделать пачкой - включить или выключить автопродление; - напоминать или не напоминать о сроке; - не продлевать, то есть отпустить домены; - поставить замок переноса (снять замок пачкой нельзя: это делается в карточке каждого домена); - изменить серверы имён. В одной пачке до 1000 доменов, если вам не настроен другой лимит. ## Шаг за шагом 1. Откройте **Домены → Все домены** и отметьте нужные домены. 2. Над таблицей появятся действия. Выберите нужное. 3. Мы составим **план** и проверим каждый домен до запуска: «можно» или «уже так, ничего не изменится». Пока ничего не изменено. 4. Просмотрите план в **Домены → Массовые действия**. Если всё в порядке, нажмите **Запустить**. Если нет, **Отменить план**. 5. Пачка выполняется по одному домену. Остановить её можно между доменами кнопкой **Остановить**. 6. По каждому домену видно результат: изменено, без изменений, не удалось. Действия, которые могут привести к потере домена (выключение автопродления или напоминаний, отпускание, смена серверов имён), требуют свежего подтверждения кодом из приложения или passkey. О выключении автопродления и смене серверов имён все владельцы организации получают письмо. ## Состояния пачки | Состояние | Что это значит | | --- | --- | | Ждёт запуска | План проверен, ничего ещё не изменено. | | Выполняется | Домены обрабатываются по одному. | | Остановлено | Пачку остановили, остальные домены не начаты. | | Завершено | Все домены обработаны. | | Откачено | Изменения отменены. | | План отменён | Ничего не изменено. | ## Откат и повтор - **Повторить неудачные**: поставит в очередь домены, где не вышло. - **Откатить**: возвращает прежнее состояние. Завершённую пачку можно откатить в течение 30 дней. Для замка переноса отката нет. - На странице «Массовые действия» хранятся последние 50 пачек. ## Если не получилось | Что видите | Что делать | | --- | --- | | «Не удалось» напротив домена | Откройте пачку и посмотрите причину, затем нажмите **Повторить неудачные**. | | Домен заморожен на время спора | Он пропущен: пока идёт спор, изменений нет. | | Действие недоступно | Для каждого действия нужна своя роль: автопродление и отпускание требуют права платить, замки и серверы имён отдельных прав. | | Массовая смена серверов имён не стартует после восстановления доступа | 72 часа после восстановления доступа серверы имён менять нельзя. | --- # DNS-зона на серверах ZRAZU — как включить URL: https://zrazu.com/ru/docs/dns-zone/ DNS — это «адресная книга» домена: она говорит интернету, где живёт ваш сайт и куда слать почту. Вы можете вести её на серверах ZRAZU бесплатно: и для доменов, зарегистрированных у нас, и для доменов других регистраторов. ## Наши серверы имён Все зоны отдают три сервера: ```text ns1.zrazu.net ns2.zrazu.net ns3.zrazu.net ``` Зона работает, когда у домена указаны именно эти серверы. Пока домен смотрит на другие серверы, записи из редактора интернет не видит. ## Как включить для домена ZRAZU 1. Откройте [кабинет](https://vse.zrazu.com/domains/) и зайдите в нужный домен. 2. Перейдите на вкладку **DNS**. 3. Нажмите **Включить DNS ZRAZU**. Текущие записи корня домена, `www` и почты мы перенесём сами. 4. Проверьте, что перенеслось, и нажмите **Перевести домен на серверы ZRAZU**. 5. Подождите. Реестр принимает изменение, а интернет увидит его в течение суток. После включения проверьте поддомены и ключи DKIM: переносим корень, `www`, почту и распространённые селекторы. Чего нет, добавьте вручную. Если какую-то запись нельзя принять в таком виде, кабинет покажет её в списке «Не перенесли». Для домена другого регистратора путь другой, см. [DNS для доменов других регистраторов и Cloudflare](https://zrazu.com/ru/docs/dns-external.md). ## Все зоны в одном месте В меню кабинета откройте **DNS → Все зоны**: там все зоны вашей организации, их состояние (например, «Работает», «Ждёт перевода NS», «Приостановлено»), DNSSEC и даты. Можно искать по названию и фильтровать: все, ZRAZU, другие регистраторы. ## Редактор записей Редактор работает через черновик: вы меняете записи, смотрите, что именно изменится, и только потом применяете. 1. На вкладке **DNS** домена добавьте запись кнопкой **Добавить запись** или измените имеющуюся в строке. 2. Заполните **Имя**, **Тип**, **Значение**, **TTL** (для MX и SRV ещё **Приоритет**). Для самого домена в имени пишут `@`. 3. Посмотрите блок **Что изменится**: что добавляется, что убирается, где меняется TTL. Ошибки кабинет подсветит до сохранения. 4. Нажмите **Применить**. Изменение получает номер ревизии и публикуется обычно за минуту. Сократить путь помогут: - **Быстро настроить**: шаблоны для почты (Google, Microsoft, DMARC) и сайта (GitHub Pages, Vercel). Шаблон только добавляет записи в черновик, ничего не меняя до **Применить**. - **Вставить из файла зоны**: вставьте строки файла зоны или «имя тип значение». Можно и **Загрузить файл зоны** (до 100 КБ). - **Скачать файл зоны**, чтобы сохранить копию текущего состояния. ### Типы записей и ограничения Поддерживаем типы A, AAAA, CNAME, MX, TXT, CAA, NS и SRV. В зоне может быть до 500 записей. О том, что писать в каждый тип, читайте в [типовых записях для сайта и почты](https://zrazu.com/ru/docs/dns-records.md). | Поле | Правило | | --- | --- | | TTL | От 60 секунд до суток. По умолчанию 3600 (час) | | Приоритет | Целое число от 0 до 65535 (для MX и SRV) | | TXT | До 4000 печатных символов, кавычки писать не нужно | TTL — это время, сколько другие серверы помнят запись. Меньшее значение означает, что изменения дойдут быстрее, но серверам придётся опрашивать чаще. ### Отменить и вернуть - Сразу после **Применить** появляется кнопка **Отменить** с отсчётом в 60 секунд. Она снимает последнее изменение. - Дальше действует список **Ревизии**: у каждой старой ревизии есть кнопка **Вернуть эту**. Храним последние 50 ревизий. - После изменения кабинет проверяет, открывается ли сайт, действителен ли сертификат и находит ли почта сервер. Если стало хуже, предлагает **Откатить изменение**. Менять записи может роль с правом на DNS: владелец, администратор или техник. ## Если не получилось - **«Зона готова, но домен ещё смотрит на другие серверы имён».** Домен не переведён на `ns1`–`ns3`. Нажмите **Перевести домен на серверы ZRAZU** (или укажите эти серверы у регистратора). - **«Зона приостановлена».** Серверы ZRAZU сейчас её не отдают. Напишите в поддержку. - **«Ещё публикуем ревизию».** Обычно это минута, повторяем сами, делать ничего не нужно. - **«Изменений нет».** Черновик совпадает с тем, что уже сохранено. - **«Зону только что изменили в другом окне».** Обновите страницу и повторите. - **«Отменить можно только последнее изменение в течение минуты».** Возвращайте старую версию из списка **Ревизии**. - **«TTL — от 60 секунд до суток»** или **«Приоритет — целое число от 0 до 65535».** Исправьте значение в строке. --- # Записи DNS для сайта и почты — примеры URL: https://zrazu.com/ru/docs/dns-records/ Эти записи добавляют в редакторе зоны на вкладке **DNS** вашего домена. Как включить зону и пользоваться редактором, описано в [DNS-зоне на серверах ZRAZU](https://zrazu.com/ru/docs/dns-zone.md). В примерах ниже стоит example.com: подставьте свой домен, а адреса и имена серверов возьмите у хостинг-провайдера или почтового сервиса. Как читать примеры: **Имя** `@` означает сам домен, `www` означает `www.example.com`. ## Сайт Адрес сервера, где живёт сайт, даёт ваш хостинг. ```text Имя Тип Значение @ A 203.0.113.10 www CNAME example.com ``` - **A** ведёт имя на адрес IPv4. - **AAAA** делает то же для IPv6. Если хостинг не дал IPv6-адреса, эта запись не нужна. - **CNAME** — псевдоним: имя ведёт на другое имя (например, `www` на конструктор сайтов). CNAME не ставят на `@` и рядом с другими записями того же имени. Для GitHub Pages и Vercel в редакторе есть готовые шаблоны в блоке **Быстро настроить → Сайт**. Если вы включите [переадресацию домена](https://zrazu.com/ru/docs/dns-forward.md), она заменит ваши записи A, AAAA и CNAME для `@` и `www`. ## Почта ### MX: куда приходят письма ```text Имя Тип Приоритет Значение @ MX 10 mx1.example.com @ MX 20 mx2.example.com ``` Меньший приоритет главнее: письма сначала идут на сервер с 10, а если он недоступен, на сервер с 20. Точные имена серверов даёт почтовый сервис. Для Google Workspace и Microsoft 365 в блоке **Быстро настроить → Почта** есть шаблоны. ### SPF: кто может слать от вашего имени SPF — это TXT-запись на `@`. Она перечисляет сервисы, которым разрешено отправлять письма с вашего домена: ```text Имя Тип Значение @ TXT v=spf1 include:_spf.google.com ~all ``` Оставляйте на домене только одну SPF-запись и объединяйте в ней все сервисы. Часть значения после `include:` даёт ваш почтовый сервис. ### DKIM: подпись писем Почтовый сервис даёт вам имя записи (вроде `selector._domainkey`) и длинный ключ. Добавьте их как TXT, скопировав ключ полностью: ```text Имя Тип Значение selector._domainkey TXT v=DKIM1; k=rsa; p=...ваш_ключ... ``` Кавычки в значении не пишите: они не нужны и не принимаются. ### DMARC: что делать с поддельными письмами ```text Имя Тип Значение _dmarc TXT v=DMARC1; p=none; rua=mailto:dmarc@example.com ``` `p=none` означает «только наблюдать»: письма не блокируются, а вы получаете отчёты. Именно такую запись добавляет шаблон **DMARC: только наблюдать**. Более строгие правила включайте, когда убедитесь, что легитимная почта проходит проверку. ## Другие полезные записи - **CAA** ограничивает, какие центры сертификации могут выдавать SSL для домена. Пример значения: `0 issue "letsencrypt.org"`. Без CAA могут выдавать любые. - **TXT** используют и для подтверждения прав на домен в Google, Meta и других сервисах. - **SRV** задаёт службу: значение имеет вид «вес порт сервер», например `5 5060 sip.example.com`, имя в формате `_служба._протокол`. - **NS** отдаёт поддомен другим серверам имён. Для самого домена (`@`) не нужен. ## Если не получилось - **«A: нужен адрес IPv4».** В запись A вставили не IPv4-адрес (например, имя сайта). Для имени используйте CNAME. - **«TXT: кавычки внутри значения не поддерживаются».** Уберите кавычки и обратные косые черты. - **«CAA: флаг, тег issue/issuewild/iodef и значение».** Записывайте в формате `0 issue "letsencrypt.org"`. - **«SRV: вес порт цель».** Проверьте, что в значении три части. - **Имя вне зоны.** Имя записи должно принадлежать вашему домену. - **Почта не приходит или сайт не открывается после изменения.** Редактор проверяет это сам и подскажет **Откатить изменение**. Кроме того, подождите время TTL: старые значения ещё лежат в кэше. --- # Домен другого регистратора и Cloudflare URL: https://zrazu.com/ru/docs/dns-external/ DNS ZRAZU можно подключить и к домену, зарегистрированному в другом месте. А если вы пользуетесь Cloudflare, ZRAZU умеет настроить новый домен прямо в вашем аккаунте Cloudflare. ## DNS ZRAZU для домена другого регистратора Домен остаётся у текущего регистратора, а зону DNS ведёт ZRAZU. То, что вы указали у регистратора наши серверы имён, одновременно подтверждает, что домен ваш. 1. В меню кабинета откройте **DNS → Добавить домен другого регистратора** ([открыть](https://vse.zrazu.com/dns/add/)). 2. Впишите домен без поддоменов: `example.com`, а не `www.example.com`. Можно добавить до 100 доменов за раз, по одному в строке. 3. Нажмите **Добавить домен**. Появится заявка и три сервера имён. 4. На этапе **1. Проверьте записи, которые перенесём** посмотрите записи, которые мы сняли с текущего DNS: корень, `www`, почта и распространённые поддомены. Редкие поддомены добавьте сами. Серверы имён пока не меняйте. 5. На этапе **2. Замените серверы имён у регистратора** укажите у регистратора: ```text ns1.zrazu.net ns2.zrazu.net ns3.zrazu.net ``` 6. Мы сами увидим изменение, обычно через несколько минут после того, как его опубликует реестр (обновление в реестре бывает до часа). Можно ускорить кнопкой **Проверить**. Проверка длится от 20 секунд до 3 минут. 7. Когда домен подтверждён, записи редактируются так же, как в [DNS-зоне на серверах ZRAZU](https://zrazu.com/ru/docs/dns-zone.md). Заявка действует ограниченное время: дату кабинет показывает («Заявка действует до…»). Если не успеть, заявка будет снята, и её можно создать заново. Количество таких доменов ограничено, кабинет показывает «Доменов других регистраторов: N из M». Лимит растёт после первой оплаты любой услуги или когда в организации есть домен в ZRAZU. Зону можно убрать кнопкой **Убрать зону**: тогда наши серверы перестанут отдавать записи. Если не хотите получать напоминания о сроке регистрации, нажмите **Не напоминать о сроке**. ## Свои серверы имён для новых доменов Для домена ZRAZU можно указать и другие серверы имён: в карточке домена на вкладке **DNS** нажмите **Сменить серверы имён**, впишите от 2 до 13 серверов по одному в строке. Нужен код второго фактора. Новый набор передаётся в реестр, интернет увидит его в течение суток. Для новых доменов это задают и на уровне организации: **Настройки → Организация**, блок **Серверы имён для новых доменов**. Там три варианта: **Серверы ZRAZU**, **Свои серверы** и **Cloudflare (ваш аккаунт)**. Существующие домены меняются в карточке домена. ## Cloudflare Если ваши домены в Cloudflare, ZRAZU создаст зону в вашем аккаунте и сама сменит серверы имён на выданные Cloudflare. Для этого нужен ключ API. ### Как добавить ключ 1. В Cloudflare откройте **My Profile → API Tokens → Create Token → Custom token**. Global API Key и Origin CA Key не подходят, потому что дают доступ ко всему аккаунту. 2. Разрешите только нужное. Для чтения зон: **Zone → Zone → Read**. Для ключа на правки: **Zone → Zone → Read**, **Zone → Zone → Edit** и **Zone → DNS → Edit**. Других доступов (участники аккаунта, Workers, хранилища) давать не нужно: слишком широкий ключ мы отклоним. 3. В **Client IP Address Filtering** разрешите адреса ZRAZU. Они показаны в кабинете на странице ключей. 4. Задайте **TTL**, то есть срок действия токена. Когда он пройдёт, мы напишем, и ключ придётся добавить снова. 5. В кабинете откройте **Команда → Ключи Cloudflare** ([открыть](https://vse.zrazu.com/team/cloudflare/)), выберите назначение: **Чтение зон** или **Зоны и записи**, вставьте токен в поле **API Token Cloudflare** и нажмите **Добавить ключ**. Токен — это секрет. Вставляйте его только в это поле кабинета, никому не отправляйте и не публикуйте. Мы никогда не показываем ключ, даже частично. Добавлять и удалять ключи могут владелец и администратор организации. Несколько секунд мы проверяем ключ в Cloudflare. Состояния ключа: «Работает», «Не принят», «Cloudflare отказал», «Отозван». Новый ключ того же назначения заменяет прежний. В **Журнале обращений** видно, когда мы обращались к Cloudflare этим ключом (без значений). ### Что делает ключ на правки Ключ **Зоны и записи** позволяет создать зону для домена, зарегистрированного в ZRAZU, и запись `_acme-challenge` для SSL. Другие записи мы не трогаем, зоны не удаляем. ### Новые домены сразу в Cloudflare 1. Добавьте ключ на правки (см. выше). 2. Откройте **Настройки → Организация**, блок **Серверы имён для новых доменов**, и выберите **Cloudflare (ваш аккаунт)**. 3. Новые домены мы регистрируем на серверах ZRAZU, затем создаём зону в вашем Cloudflare и меняем NS на выданные Cloudflare. Если Cloudflare откажет, домен остаётся на серверах ZRAZU. Ход виден на странице **Команда → Ключи Cloudflare**, в блоке «Домены, переходящие в Cloudflare». Состояния: «Создаём зону в вашем Cloudflare», «Меняем серверы имён», «Ждём, пока Cloudflare увидит новые NS», «Домен в Cloudflare». Если Cloudflare выдал необычную пару серверов, кабинет попросит **Подтвердить** замену или **Отказаться**. Неудавшуюся попытку можно **Повторить**. ## Если не получилось - **Статус «Ждёт перевода NS» не меняется.** Проверьте, что у регистратора указаны все три сервера ZRAZU без старых, и нажмите **Проверить**. - **«Введите домен, например example.com».** Впишите только сам домен, без `www` и без `https://`. - **«Зона приостановлена, потому что домен не указывает на серверы ZRAZU».** Верните у регистратора серверы `ns1`–`ns3`. - **Ключ Cloudflare «Не принят».** Причины из кабинета: это Global API Key (нужен API Token), это Origin CA Key, токен не читает зоны, токен слишком широкий, токен выключен или просрочен, либо скопирован не полностью. - **Домен остался на серверах ZRAZU.** Cloudflare отказал: посмотрите причину в строке домена и нажмите **Повторить**. --- # DNSSEC для домена на серверах ZRAZU URL: https://zrazu.com/ru/docs/dns-dnssec/ DNSSEC добавляет к зоне цифровую подпись. Благодаря ей никто не может незаметно подменить ваши DNS-ответы. Функция необязательная, но полезная. DNSSEC доступен, когда домен указывает на наши серверы имён `ns1.zrazu.net`, `ns2.zrazu.net` и `ns3.zrazu.net`. Сначала [включите DNS-зону и переведите домен на серверы ZRAZU](https://zrazu.com/ru/docs/dns-zone.md). ## Как включить 1. В [кабинете](https://vse.zrazu.com/domains/) откройте домен и вкладку **DNS**. 2. В блоке **DNSSEC** включите переключатель **Подпись зоны DNSSEC**. 3. Дождитесь этапов. Кабинет показывает их словами: «Подписываем зону, ждём все серверы имён», затем «Вносим DS в реестр», а в конце «DNSSEC работает». Для доменов, зарегистрированных в ZRAZU, DS-запись в реестр мы вносим сами. Для домена другого регистратора кабинет попросит: «Внесите DS у регистратора домена». В таком случае: 1. В блоке DNSSEC скопируйте **DS-запись** (Key tag, Алгоритм, Тип дайджеста, Дайджест) или воспользуйтесь кнопкой **Одной строкой**. Некоторые регистраторы просят вместо этого **DNSKEY**: Flags, Протокол, Алгоритм и Публичный ключ. 2. Внесите их в панели своего регистратора, в разделе DNSSEC. 3. Дождитесь состояния «DNSSEC работает». DS и DNSKEY — это публичные данные. Их можно безопасно копировать. ## Как выключить 1. Выключите переключатель **Подпись зоны DNSSEC** и подтвердите **Да, выключить DNSSEC**. 2. Сначала мы снимем DS в реестре, и лишь потом, позже, подпись зоны. Спешки тут нет: пока старый DS живёт в кэшах, подпись должна оставаться, чтобы домен не перестал открываться. Сейчас это не менее двух суток. 3. Пока DNSSEC включён или снимается, сменить серверы имён на чужие нельзя. Сначала выключите DNSSEC. Включить снова можно, когда подпись снята. ## Чужой DS в реестре Если раньше домен подписывал другой провайдер, в реестре мог остаться его DS. Перед переводом на серверы ZRAZU снимите его кнопкой **Снять DS в реестре** и подтвердите **Да, снять DS**. Делайте это, только если домен больше не подписывается на старых серверах имён: иначе он может перестать открываться. Менять DNSSEC может роль с правом на DNS: владелец, администратор или техник. ## Если не получилось - **«Сначала переведите домен на серверы имён ZRAZU».** DNSSEC работает только с нашими серверами. - **«Шаг задерживается, мы уже смотрим».** Делать ничего не нужно, мы увидим это сами. - **«DNSSEC ещё выключается».** Подождите, пока подпись будет снята, и включите снова. - **«Для домена запланирована смена серверов имён».** DNSSEC можно включить, когда смена применится или будет отменена. - **Домен не открывается после внесения DS у регистратора.** Проверьте, что DS скопирован полностью и соответствует текущему ключу зоны. --- # Переадресация домена на другой адрес URL: https://zrazu.com/ru/docs/dns-forward/ Переадресация (редирект) отправляет посетителей домена на другой адрес. Например, `example.com` и `www.example.com` ведут на ваш сайт на конструкторе или на основной домен. Работает для доменов на серверах имён ZRAZU. Если домен ещё не там, переадресация заработает после перевода: см. [DNS-зону на серверах ZRAZU](https://zrazu.com/ru/docs/dns-zone.md). ## Что важно знать Включение **заменяет ваши записи A, AAAA и CNAME для `@` и `www`** записями сервера ZRAZU. Сайт на корне домена перестанет открываться, его заменит переадресация. Кабинет предупреждает об этом до нажатия, а после включения показывает, какие ваши записи были сняты. Остальные записи (например, почта) не меняются. ## Как настроить 1. В [кабинете](https://vse.zrazu.com/domains/) откройте домен и вкладку **DNS**. 2. В блоке **Переадресация** нажмите **Настроить переадресацию**. 3. В поле **Куда вести** укажите полный адрес, начинающийся с `http://` или `https://`, например `https://shop.example.com/`. 4. Выберите **Тип переадресации**: **Постоянная (301)** для окончательного переезда или **Временная (302)**. 5. При необходимости поставьте отметку **Сохранять путь и параметры**: тогда `example.com/page?x=1` откроет соответствующую страницу на новом адресе, а не его главную. 6. Нажмите **Включить переадресацию**. Кабинет напишет «Переадресация сохранена». Текущие настройки видны в строке «Сейчас». Их можно изменить кнопками **Изменить** и **Сохранить**. Сертификат для адресов с переадресацией мы выдаём автоматически, поэтому `https://example.com` тоже работает. ## Как выключить Нажмите **Выключить** и подтвердите **Да, выключить**. На `@` и `www` останется страница-заглушка ZRAZU, пока вы не добавите свои записи. Прежние записи не возвращаются, поэтому добавьте их заново в [редакторе](https://zrazu.com/ru/docs/dns-zone.md). Примеры для сайта есть в [типовых записях](https://zrazu.com/ru/docs/dns-records.md). Менять переадресацию может роль с правом на DNS: владелец, администратор или техник. ## Если не получилось - **«Адрес должен начинаться с http:// или https://».** Укажите полный адрес. - **«Укажите адрес с именем сайта, а не IP».** Переадресация на IP-адрес не поддерживается. - **«Адрес с логином или паролем не подходит».** Уберите логин и пароль из адреса. - **«Адрес с # не подходит».** Уберите часть после `#`. - **«Домен не может переадресовывать сам на себя».** Укажите другой адрес. - **«Адрес слишком длинный или содержит пробелы или служебные знаки».** Сократите его и уберите пробелы. - **«Домен ещё не на серверах имён ZRAZU».** Переадресация заработает после того, как домен перейдёт на `ns1`–`ns3`. - **«Переадресацию как раз меняют».** Обновите страницу и повторите. --- # Типы SSL-сертификатов в ZRAZU URL: https://zrazu.com/ru/docs/ssl-overview/ SSL-сертификат включает https на сайте: данные между посетителем и сайтом шифруются, а браузер видит, что домен действительно ваш. В ZRAZU есть бесплатный сертификат Let’s Encrypt и платные сертификаты с подпиской. ## Какой тип вам нужен | Тип | Что в нём | Кому подходит | | --- | --- | --- | | DV | Подтверждено, что домен ваш | Большинству сайтов, которым нужны счёт, договор и акт или гарантия центра сертификации | | Wildcard | Один сертификат на домен и все его поддомены одного уровня (`*.example.com`) | Много поддоменов одного сайта | | Multi-domain (SAN) | Несколько разных доменов в одном сертификате | Несколько отдельных сайтов, которыми удобнее управлять вместе | | OV | В сертификате есть проверенное имя организации | Когда банк, контрагент или тендер просят подтверждённую организацию | | EV | Расширенная проверка организации | Только если её прямо требует регулятор или контрагент | Шифрование у всех типов одинаковое, и такое же, как у бесплатного Let’s Encrypt. Платные отличаются гарантией центра сертификации, закрывающими документами и поддержкой. На позиции в Google тип сертификата не влияет. EV в адресной строке браузера ничем не выделяется. Wildcard покрывает поддомены одного уровня (`shop.example.com`), но не сам `example.com` и не `a.b.example.com`. Сколько имён можно добавить к Multi-domain, зависит от выбранного сертификата: форма заказа показывает лимит. Цены и полный перечень на странице [https://zrazu.com/prices/](https://zrazu.com/prices/), описание типов в разделе [https://zrazu.com/ssl/](https://zrazu.com/ssl/). ## Не хватит ли бесплатного Let’s Encrypt входит в ZRAZU без доплат, выпускается сам и перевыпускается автоматически, в том числе wildcard, когда домен на наших серверах имён. Если этого достаточно, берите его: это нормально. Платный сертификат нужен, когда: - бухгалтерии нужны счёт, договор и акт; - контрагент, банк или тендер просят именно приобретённый сертификат; - нужна гарантия центра сертификации или печать доверия на странице оплаты. ## Подписка на 1 год Платный сертификат продаётся как подписка на 1 год. Один выпущенный сертификат действует ограниченный срок (сейчас до 200 дней, дальше по правилам отрасли меньше), поэтому подписка выполняется частями: когда наступает время следующей части, мы перевыпускаем сертификат на ваш прежний ключ без доплаты. Чтобы новая часть попала на сайт без вашего участия, настройте автоматическое обновление: [Как работает автоматическое обновление сертификата](https://zrazu.com/ru/docs/ssl-auto.md). Если у вас certbot, acme.sh, Caddy или Kubernetes, есть ещё один путь: [ACME-сервер ZRAZU](https://zrazu.com/ru/docs/ssl-acme.md). ## Что дальше 1. [Заказ и активация сертификата](https://zrazu.com/ru/docs/ssl-order.md) 2. [Подтверждение домена](https://zrazu.com/ru/docs/ssl-dcv.md) 3. [Файлы сертификата и установка](https://zrazu.com/ru/docs/ssl-files.md) 4. [Перевыпуск и отзыв](https://zrazu.com/ru/docs/ssl-reissue.md) 5. [ACME для certbot и acme.sh](https://zrazu.com/ru/docs/ssl-acme.md) ## Если не получилось - **«Сертификаты SSL ещё не продаются».** Заказ временно закрыт. Проверьте позже или напишите в поддержку. - **Нет кнопки заказа.** Заказывать может владелец, администратор или бухгалтер организации. Просматривать сертификаты может роль с правом просмотра доменов. - **Нужны другие имена в уже выпущенном сертификате.** Состав имён после выпуска не меняется: закажите новый сертификат. --- # Заказ и активация сертификата URL: https://zrazu.com/ru/docs/ssl-order/ Заказать сертификат может владелец, администратор или бухгалтер организации. Оплатить можно с баланса, картой или счётом на IBAN — так же, как любой другой заказ. Закрытый ключ мы никогда не получаем: нам нужен только CSR, то есть запрос на сертификат. Ключ остаётся у вас. ## Что такое CSR и где его взять CSR — это текстовый запрос, который начинается с `-----BEGIN CERTIFICATE REQUEST-----`. Его создают вместе с закрытым ключом. Есть два пути. **Создать в кабинете.** В форме заказа есть раздел «Нет CSR? Создадим здесь». Выберите тип ключа: RSA («любой сервер») или EC («меньше и быстрее, современные серверы») и нажмите «Создать ключ и CSR». Ключ и запрос создаются в вашем браузере и не попадают к нам. Обязательно нажмите «Скачать закрытый ключ» и сохраните файл: без него сертификат не установить, а восстановить ключ мы не сможем. **Создать на сервере.** Например, командой openssl: ``` openssl req -new -newkey rsa:2048 -nodes -keyout kava.key -out kava.csr -subj "/CN=kava.com.ua" ``` Файл `kava.key` остаётся у вас, содержимое `kava.csr` вставляете в форму. Требования к CSR: ключ RSA от 2048 бит или EC P-256 либо P-384; в запросе должен быть ваш домен; в нём только имена доменов (без IP, почты и ссылок). ## Как заказать 1. В кабинете откройте «SSL-сертификаты» и нажмите «Заказать SSL» ([кабинет](https://vse.zrazu.com/ssl/new/)). 2. Выберите плательщика: «ООО, с НДС» или «ФЛП, без НДС». 3. Выберите сертификат. Цену за год форма покажет сразу. 4. Укажите домен, например `kava.com.ua`. Адрес с `www.` входит автоматически. 5. Если это Multi-domain, добавьте остальные имена по одному в строке. Форма покажет, сколько имён входит в цену и сколько можно докупить. Wildcard-имена (`*.домен`) доступны не в каждом сертификате. 6. Выберите, как подтвердить домен. Подробнее: [Подтверждение домена](https://zrazu.com/ru/docs/ssl-dcv.md). 7. Вставьте CSR или создайте его здесь. 8. Нажмите «Перейти к оплате» и выберите способ: с баланса, картой или счёт на оплату (IBAN). Для счёта выберите плательщика — компанию или ФЛП, на которую его выписать. Перевод по счёту оплачивает заказ сам, как только банк проведёт деньги. После оплаты остаётся подтвердить домен. Сертификат появится в карточке, а о выпуске мы напишем письмом. ## Оплатить сейчас, активировать позже Некоторые заказы сначала оплачиваются без домена. Они стоят в списке со статусом «Ждёт активации» и датой «Активировать до …». 1. В списке сертификатов нажмите «Активировать». 2. Домен и имена сертификата уже оплачены, менять их здесь нельзя. Создайте или вставьте CSR и выберите способ подтверждения. 3. Нажмите «Активировать». Год сертификата отсчитывается от активации. Платить ещё раз не нужно. Если передумали, до активации можно отказаться и получить сумму обратно: на баланс или, по вашему требованию, на карту. Если срок активации прошёл, напишите нам, и мы вернём сумму. ## Несколько сертификатов одним заказом Если доменов много, закажите до 50 сертификатов вместе: по одному на каждый домен, под одним номером заказа. Для каждого домена нужен свой CSR. Кнопка «Проверить CAA» заранее покажет, не запрещает ли запись CAA вашего домена выпуск нашим центром сертификации. Оплата всей пачки — одним заказом, любым способом. ## Если не получилось - **«Это закрытый ключ, а не CSR».** Вы вставили ключ. Ключ никому не отправляйте, нужен только текст CSR. - **«Это не похоже на CSR».** Скопируйте весь текст вместе со строками BEGIN и END. - **«CSR сделан не для …».** Домен в запросе не совпадает с доменом заказа. Создайте CSR заново. - **«Ключ RSA короче 2048 бит».** Создайте ключ подлиннее. - **«Слишком много имён для этого сертификата».** Уберите лишние имена или выберите другой сертификат. - **Wildcard и файл на сайте.** Wildcard-имя файлом не подтверждается: выберите запись DNS или письмо. - **«Слишком много заказов».** Есть лимит заказов в час. Попробуйте позже. - **Центр не принял заказ.** Деньги возвращаем на баланс; причина указана в карточке. - **Домен не подтвердили за 25 дней.** Заказ закрывается, а оплату возвращаем. --- # Подтверждение домена для сертификата URL: https://zrazu.com/ru/docs/ssl-dcv/ Прежде чем выдать сертификат, центр сертификации проверяет, что домен действительно ваш. Это называется DCV. Способ выбирают при заказе, а затем его можно сменить в карточке сертификата. Для Multi-domain каждое имя подтверждается отдельно, и способ можно выбрать для каждого. ## Три способа | Способ | Что сделать | Когда подходит | | --- | --- | --- | | Запись DNS | Добавить запись (TXT или CNAME) там, где вы управляете DNS домена | Самый надёжный. Сайт не нужен, подходит и для wildcard | | Файл на сайте | Положить небольшой текстовый файл по адресу, который покажет кабинет (http или https) | Есть работающий сайт и доступ к его файлам. Для wildcard не годится | | Письмо | Открыть ссылку из письма от центра | Ничего ставить не нужно, но у домена должна быть почта (MX) | Для письма центр использует один из стандартных адресов домена: `admin@`, `administrator@`, `webmaster@`, `hostmaster@` или `postmaster@`. Кабинет позволяет выбрать ящик на самом имени или на домене выше, но не на зоне вроде `com.ua`. ## Подтверждение записью DNS 1. Откройте карточку сертификата: [кабинет](https://vse.zrazu.com/ssl/). В блоке «Подтвердите домен» кабинет покажет тип, имя и значение записи. 2. Добавьте эту запись в DNS домена там, где вы им управляете: в ZRAZU, в Cloudflare или у другого провайдера. 3. Нажмите «Проверить сейчас». Центр проверяет и сам, а карточка обновляется за минуту-две. Данные для проверки появляются не сразу: центр готовит их несколько минут, страница обновится сама. Кнопка «Проверить сейчас» работает не чаще раза в минуту. После выпуска не удаляйте запись или файл: с ними следующие части подписки будут выпускаться сами. ## Домен на DNS ZRAZU или в Cloudflare Если домен на наших серверах имён, кабинет предлагает «Добавить запись автоматически». Мы добавим в зону только запись проверки и сразу попросим центр проверить домен. Другие записи не меняются. То же для домена в вашем Cloudflare, если ключ Cloudflare с правом менять DNS добавлен в разделе «Команда → Cloudflare». Мы поставим только запись проверки. Запись проверки позволяет выпустить сертификат на домен, поэтому кабинет может попросить повторно подтвердить вход, а владельцам организации пришлёт письмо о добавлении записи. ## Файл на сайте 1. В карточке скопируйте адрес файла и его содержимое или нажмите «Скачать файл». 2. Положите файл на сайт точно по этому адресу. Он должен открываться без переадресации. 3. Нажмите «Проверить сейчас». ## Письмо 1. Откройте письмо от центра на выбранный адрес домена. 2. Перейдите по ссылке в письме и подтвердите домен. Письма нет? Проверьте спам. В карточке есть кнопки «Отправить ещё раз» и «Сменить ящик или способ»: письмо можно отправлять не чаще раза в 2 минуты, до 20 смен и писем в сутки. ## Сменить способ Если выбранный способ не подходит, в карточке нажмите «Сменить способ», выберите другой и «Применить». Мы передадим выбор центру, новые данные появятся через минуту-две. ## Если не получилось - **«Домен ещё не подтверждён — проверим снова».** Записи DNS обновляются не мгновенно. Подождите и нажмите «Проверить сейчас» ещё раз. - **«Центр только что спрашивали — попробуйте через минуту».** Это лимит проверок: один запрос в минуту. - **Cloudflare: «зоны этого домена нет в аккаунте ключа».** Поставьте запись вручную или добавьте домен в аккаунт ключа. - **Cloudflare: ключу не хватает права менять DNS.** Обновите ключ или поставьте запись вручную. - **CAA не разрешает центру.** У домена есть запись CAA без нашего центра сертификации. Добавьте в CAA разрешение для нашего центра или уберите ограничение. В пакетном заказе кнопка «Проверить CAA» показывает это заранее. - **У домена нет почты.** Для способа «письмо» нужен MX. Выберите DNS или файл. - **Не подтвердили за 25 дней.** Заказ закрывается, а оплату возвращаем на баланс. --- # Файлы сертификата и установка на сервер URL: https://zrazu.com/ru/docs/ssl-files/ Когда сертификат выпущен, его файлы доступны в карточке. Закрытого ключа у нас нет, поэтому на сервер ставят два файла: сертификат от нас и ваш ключ, созданный вместе с CSR. ## Какие есть файлы Откройте карточку сертификата, раздел «Установка» или «Файлы сертификата» ([кабинет](https://vse.zrazu.com/ssl/)). Файлы могут скачивать все роли организации. | Файл | Что в нём | Куда | | --- | --- | --- | | fullchain.pem | Ваш сертификат вместе с промежуточными | nginx, Apache 2.4.8+, HAProxy, Caddy | | cert.pem | Только ваш сертификат | Если цепочка задаётся отдельно | | chain.pem | Только промежуточные сертификаты (CA Bundle) | Если цепочка задаётся отдельно | | Архив с инструкцией | Все три файла и короткая памятка | Когда хотите забрать всё вместе | | PFX | Сертификат, цепочка и ваш ключ в одном файле | IIS и Windows | Все файлы в формате PEM, то есть обычный текст. Если программа просит «цепочку» или «CA Bundle», это `chain.pem`. Дата выпуска входит в имя файла, поэтому новые версии не затирают прежние. ## PFX для IIS и Windows PFX собирается прямо в браузере, ключ никуда не отправляется. 1. В блоке «PFX для IIS и Windows» выберите файл своего закрытого ключа (`.key` или `.pem`, до 64 КБ). 2. Задайте пароль PFX минимум из 8 знаков и повторите его. 3. Нажмите «Собрать PFX» и сохраните файл. Современный шифр (AES-256) читают Windows Server 2019+, IIS 10, Java и OpenSSL. Windows Server 2016 и старше, а также «Связка ключей» macOS его не прочитают. Для них соберите PFX на своём компьютере: ``` openssl pkcs12 -export -legacy -inkey kava.key -in cert.pem -certfile chain.pem -out kava.pfx ``` ## Установка и обновление 1. Положите `fullchain.pem` и свой закрытый ключ на сервер. 2. Укажите их в настройках веб-сервера и перезапустите его. 3. Проверьте сайт: [https://zrazu.com/tools/ssl/example.com/](https://zrazu.com/tools/ssl/example.com/) покажет, какой сертификат отдаёт сайт и до какой даты он действует. В карточке также видно, отдаёт ли сайт именно этот сертификат. Сертификат по подписке обновляется частями. Чтобы не копировать новый файл вручную, настройте автоматическое обновление под свой хостинг: [Как работает автоматическое обновление сертификата](https://zrazu.com/ru/docs/ssl-auto.md). Если вам удобнее certbot или acme.sh, см. [ACME для certbot и acme.sh](https://zrazu.com/ru/docs/ssl-acme.md). ## Если не получилось - **«Сертификат ещё не выпущен».** Файлы появятся после подтверждения домена. См. [Подтверждение домена](https://zrazu.com/ru/docs/ssl-dcv.md). - **«Не удалось получить файлы сертификата».** Обновите страницу. - **PFX: «Это не закрытый ключ в PEM».** Нужен файл, который начинается с `-----BEGIN PRIVATE KEY-----` (или RSA/EC PRIVATE KEY). - **PFX: ключ под паролем.** Снимите пароль на своём компьютере: `openssl pkey -in key.pem -out open.key`, затем выберите новый файл. - **PFX: «Этот ключ от другого сертификата».** Нужен ключ, с которым делали CSR именно для этого заказа. - **Браузер не даёт шифрование (WebCrypto).** Откройте кабинет в свежем Chrome, Firefox или Safari. - **Сайт отдаёт старый сертификат.** Новый файл не подхватился: перезапустите веб-сервер или проверьте задачу автоматического обновления. --- # Перевыпуск и отзыв сертификата URL: https://zrazu.com/ru/docs/ssl-reissue/ Перевыпуск нужен, когда нужен новый ключ: ключ утёк, сервер переехал или вы потеряли файл ключа. Отзыв нужен, когда сертификату больше нельзя доверять. Кто что может в карточке сертификата: скачивать файлы могут все роли организации, перевыпускать владелец, администратор и техник, отзывать владелец и администратор. ## Плановые обновления Платить за них не нужно. Подписка на 1 год выполняется частями, и каждую новую часть мы выпускаем сами. Она выходит на тот же ключ, поэтому достаточно, чтобы ваш сервер забирал новый сертификат: [автоматическое обновление](https://zrazu.com/ru/docs/ssl-auto.md). ## Перевыпуск с новым CSR Срок и деньги те же, домен подтверждается снова. Предыдущая версия действует, пока вы её не отзовёте. 1. Создайте новый ключ и CSR: на сервере или в кабинете ([Заказ и активация](https://zrazu.com/ru/docs/ssl-order.md)). CSR должен быть для того же домена и тех же имён. 2. Откройте карточку сертификата: [кабинет](https://vse.zrazu.com/ssl/). Перейдите на вкладку «Ключ и CSR». 3. В блоке «Перевыпустить с новым CSR» вставьте CSR и выберите способ подтверждения домена. 4. Нажмите «Перевыпустить». Кабинет может попросить повторно подтвердить вход. 5. Подтвердите домен ([Подтверждение домена](https://zrazu.com/ru/docs/ssl-dcv.md)). Новая версия появится в списке «Версии». 6. Установите новые файлы на сервер, а затем, если старый ключ скомпрометирован, отзовите предыдущую версию. О перевыпуске мы отправляем письмо владельцам организации. Состав имён при перевыпуске не меняется: нужны другие имена, закажите новый сертификат. ## Отзыв Отзыв не отменить: браузеры перестанут доверять этой версии. Отзывайте, если ключ утёк или сертификат больше не нужен. 1. В карточке откройте вкладку «Отзыв». 2. Выберите версию и причину. 3. Введите имя домена для подтверждения и нажмите «Отозвать». Если ключ утёк, сначала перевыпустите сертификат с новым ключом, установите его на сервер и только потом отзовите старую версию. Иначе сайт на какое-то время останется без действующего сертификата. Владельцам придёт письмо об отзыве. ## Возврат денег Деньги возвращаются полностью, только пока сертификат не выпущен: если центр отказал или домен не подтвердили за 25 дней, мы возвращаем сумму на баланс сами. После выпуска возврата нет. ## Если не получилось - **«Ваша роль этого не позволяет».** Попросите владельца или администратора организации. - **«CSR сделан не для …».** Имена в новом CSR должны совпадать с именами сертификата. - **«Это закрытый ключ, а не CSR».** Вставьте текст запроса, а не ключ. - **Перевыпуск не удался.** Причина видна в журнале карточки («Что происходило»). Попробуйте ещё раз или напишите в поддержку. - **«Слишком много заказов».** Есть лимит в час, попробуйте позже. - **Действующих версий нет.** Отзывать нечего: сертификат не выпущен или уже отозван. --- # ACME для certbot, acme.sh и Caddy URL: https://zrazu.com/ru/docs/ssl-acme/ ACME — это протокол, которым certbot, acme.sh, lego, Caddy, Traefik и cert-manager сами выпускают и продлевают сертификаты. В ZRAZU есть два способа его использовать. Оба настраиваются в кабинете: «SSL-сертификаты» → «ACME для certbot» ([кабинет](https://vse.zrazu.com/ssl/acme/)). Создавать записи могут владелец, администратор и техник. | Что нужно | Какой способ | | --- | --- | | Платный сертификат из подписки ZRAZU, который обновляется сам | ACME-сервер ZRAZU | | Бесплатный Let’s Encrypt, особенно wildcard | acme-dns | | Свой хостинг без certbot | [Ссылка для сервера](https://zrazu.com/ru/docs/ssl-auto.md) | В обоих случаях закрытый ключ остаётся на вашем сервере. ## ACME-сервер ZRAZU Это наш сервер сертификатов для платной подписки. Адрес (Directory): `https://api.zrazu.com/acme/directory`. Клиент регистрируется на нём через привязку EAB. 1. В блоке «Свой ACME-сервер для платных сертификатов» введите название привязки, например имя сервера, и нажмите «Создать». 2. Сохраните показанные Directory, `kid` и ключ HMAC. Ключ показывается один раз, его никто не восстановит. 3. В мастере «Настройка под ваш сервер» выберите программу (nginx с certbot, acme.sh, Caddy, Traefik, Kubernetes cert-manager, win-acme для IIS) и домен. Кабинет покажет готовые команды. 4. Зарегистрируйте клиент в течение 7 дней, иначе привязка потеряет силу. Для certbot это выглядит так: ``` certbot register --server https://api.zrazu.com/acme/directory \ --eab-kid --eab-hmac-key <ключ HMAC> --agree-tos -m you@example.com ``` Привязка бывает личная (действует, пока вы в организации и можете перевыпускать сертификаты) и организации (для сервера, который переживёт изменения в команде; создают владелец и администратор). Выключить привязку можно в списке: выпущенные сертификаты остаются. Как ведёт себя ACME-сервер: - Сначала ищет оплаченную действующую подписку, имена которой покрывают заказ. Перевыпуск в рамках подписки без доплаты. - Первый выпуск подписки нужно сделать в кабинете: перевыпускать пока нечего, а покупать дважды нельзя. - Если подписки нет, certbot может купить сертификат с баланса, но только когда вы включили «Покупать новые сертификаты с баланса» в привязке и средств хватает. В долг никогда. О каждой покупке мы пишем владельцам. - Домен должен быть на наших серверах имён: запись проверки мы ставим в зоне сами. Выдача занимает до нескольких минут. - Отзыв через ACME возможен только с причиной keyCompromise и подписью ключом самого сертификата. В остальных случаях отзывайте в кабинете ([Перевыпуск и отзыв](https://zrazu.com/ru/docs/ssl-reissue.md)). О каждом перевыпуске, покупке и отзыве мы отправляем письмо владельцам. ## acme-dns: бесплатные сертификаты через DNS Подходит для Let’s Encrypt через certbot, acme.sh, lego и Caddy с обычным плагином acme-dns. Одна запись покрывает и домен, и `*.домен`, так что это путь для wildcard. Ключ от всей зоны не нужен. 1. В блоке «Новая учётная запись» введите домен. По желанию укажите разрешённые IP-адреса или сети через запятую. 2. Нажмите «Создать» и сохраните пароль. Его показывают один раз. 3. Добавьте CNAME `_acme-challenge.домен`, ведущий в зону ZRAZU. Если домен на наших серверах имён или в вашем Cloudflare с ключом на правки, нажмите «Добавить CNAME» (или «Поставить CNAME в Cloudflare»). Иначе добавьте запись у своего DNS-провайдера. 4. Скопируйте из кабинета файл `acmedns.json` или команды для вашего клиента и выпустите сертификат. Пароль умеет только ставить TXT-проверку для своего имени. Менять зону, домен или баланс он не может. Запись без единого обновления за 30 дней или без обновлений больше года мы удаляем сами вместе со своим CNAME. Если домен за прокси Cloudflare (оранжевое облако), посетитель видит сертификат Cloudflare, а ваш сертификат нужен для сервера сайта (режим Full strict). ## Если не получилось - **ACME в этой среде выключен.** Кабинет показывает такую надпись, если функция временно недоступна. Напишите в поддержку. - **«дочекайтеся першого випуску».** Подписку ещё не выпускали: сделайте первый выпуск в кабинете. - **Выдача зависла.** Проверьте, что домен на серверах имён ZRAZU. - **Покупка не сработала.** Проверьте, что покупка включена в привязке, на балансе хватает средств, а у создателя привязки есть право оплаты. - **Привязка «истекла, не использована».** Ключ HMAC действует 7 дней: создайте новую привязку. - **Wildcard через HTTP не получится.** Для `*.` используйте проверку DNS-01 и acme-dns: для acme.sh это `--dns dns_acmedns`. - **Пароль acme-dns потеряли.** Удалите учётную запись и создайте новую. --- # Как работает автоматическое обновление сертификата URL: https://zrazu.com/ru/docs/ssl-auto/ Сертификат по подписке ZRAZU выпускается частями: каждая часть действует ограниченный срок (сейчас до 200 дней, дальше по правилам отрасли — меньше). Когда приходит время следующей части, мы выпускаем её сами. Чтобы новый сертификат оказался на сайте без вашего участия, его должен забрать ваш сервер, хостинг или облако — по расписанию, раз в сутки. ## Что для этого есть - **Личная ссылка на сертификат.** В кабинете, в карточке сертификата, раздел «Установка» → «Ссылка для сервера». По ней всегда лежит действующий сертификат подписки: `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/fullchain.pem` (сертификат вместе с промежуточными), `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/cert.pem` и `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/chain.pem` отдельно. - **Ваш закрытый ключ остаётся у вас.** Следующие части подписки выпускаются на тот же ключ, поэтому ключ вы кладёте один раз, а дальше обновляется только публичный сертификат. Ссылка ключ не отдаёт и не принимает. - **Задача по расписанию на вашей стороне.** Скрипт раз в сутки забирает сертификат по ссылке и, если он новый, устанавливает его. Скрипты — в каждой инструкции ниже. Мы не просим паролей от хостинга, ключей от облака или закрытого ключа сертификата: сертификат устанавливает ваш сервер, а не мы. ## Выберите свой случай | Где работает сайт | Обновляется ли сам | Инструкция | | --- | --- | --- | | Свой сервер Linux (nginx, Apache, Caddy, HAProxy, Docker) | да | [Сервер Linux](https://zrazu.com/ru/docs/ssl-auto-linux.md) | | Windows Server с IIS | да | [Windows и IIS](https://zrazu.com/ru/docs/ssl-auto-windows-iis.md) | | Kubernetes | да | [Kubernetes](https://zrazu.com/ru/docs/ssl-auto-kubernetes.md) | | Хостинг с cPanel (Hostiq, Hostpro, Ukrnames, GoDaddy, Namecheap…) | да | [cPanel](https://zrazu.com/ru/docs/ssl-auto-cpanel.md) | | AWS: балансировщик, CloudFront, API Gateway | да | [AWS](https://zrazu.com/ru/docs/ssl-auto-aws.md) | | Azure: Application Gateway, App Service, Front Door | да | [Azure](https://zrazu.com/ru/docs/ssl-auto-azure.md) | | Google Cloud: балансировщик с Certificate Manager | да | [Google Cloud](https://zrazu.com/ru/docs/ssl-auto-gcp.md) | | Cloudflare перед сайтом | зависит от тарифа | [Cloudflare](https://zrazu.com/ru/docs/ssl-auto-cloudflare.md) | | Хостинг с панелью без API: hosting.ua (adm.tools), Cityhost, Mirohost, ISPmanager, Plesk, DirectAdmin, Hostinger, Hetzner | вручную, мы напомним | [Панели хостинга](https://zrazu.com/ru/docs/ssl-auto-panels-manual.md) | | Конструктор сайтов: Tilda, Wix, Shopify, Prom, Horoshop… | наш сертификат там не нужен | [Конструкторы](https://zrazu.com/ru/docs/ssl-auto-site-builders.md) | Не знаете, что у вас? Откройте любую инструкцию и скопируйте промт для ИИ: он спросит о вашем хостинге и поведёт дальше. ## Как убедиться, что всё работает - В карточке сертификата рядом со ссылкой видно, когда ваш сервер в последний раз забирал сертификат и забрал ли он действующий. - Проверка сайта: [https://zrazu.com/tools/ssl/example.com/](https://zrazu.com/tools/ssl/example.com/) показывает, какой сертификат отдаёт сайт и до какой даты он действует. - После каждой новой части мы отправляем письмо. Если через несколько дней сайт всё ещё отдаёт старый сертификат, значит, задача на сервере не сработала: откройте журнал задачи (в каждой инструкции сказано, где он). ## Безопасность ссылки - Ссылка отдаёт только публичный сертификат — тот же, что сайт показывает каждому посетителю. Но всё же не публикуйте её: у кого есть ссылка, тот видит, когда ваш сервер её забирает. - Ссылку мы показываем один раз, в базе храним только её отпечаток. Потеряли или засветили — в карточке «Новая ссылка»: старая сразу перестанет работать, в скрипте замените адрес. - Ссылка действует до конца подписки. Неизвестная, отключённая или просроченная ссылка отвечает одинаково — «не найдено» (404). --- # Сервер Linux — nginx, Apache, Caddy, HAProxy, Docker URL: https://zrazu.com/ru/docs/ssl-auto-linux/ Подходит, если у вас есть доступ к серверу по SSH и права root (VPS, выделенный сервер, свой компьютер в стойке). Нужны `curl` и `openssl` — они есть почти в каждом Linux. ## Что понадобится - Ссылка на сертификат из кабинета: `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН`. - Закрытый ключ, с которым заказывали сертификат (файл `key.pem` или похожий). Если CSR создавал кабинет ZRAZU — это файл, который вы тогда сохранили. - 10 минут. ## Шаг 1. Положите ключ на сервер ```sh sudo mkdir -p /etc/ssl/zrazu/example.com sudo chmod 700 /etc/ssl/zrazu/example.com sudo nano /etc/ssl/zrazu/example.com/key.pem sudo chmod 600 /etc/ssl/zrazu/example.com/key.pem ``` В `nano` вставьте весь текст ключа вместе со строками `-----BEGIN … PRIVATE KEY-----` и `-----END … PRIVATE KEY-----`, сохраните (Ctrl+O, Enter) и выйдите (Ctrl+X). Ключ без пароля: если ваш ключ запаролен, снимите пароль командой `openssl pkey -in старый.key -out /etc/ssl/zrazu/example.com/key.pem`. ## Шаг 2. Скрипт обновления Создайте файл `sudo nano /usr/local/bin/zrazu-ssl-example.com.sh`, вставьте текст ниже и измените только строку `RELOAD` под свой веб-сервер: - nginx — `nginx -t && systemctl reload nginx` (так стоит); - Apache (Debian, Ubuntu) — `apachectl configtest && systemctl reload apache2`; Apache (CentOS, Rocky, Alma) — `apachectl configtest && systemctl reload httpd`; - Caddy — `systemctl reload caddy`; - HAProxy — `systemctl reload haproxy` и `COMBINED=1` (HAProxy читает сертификат и ключ одним файлом `combined.pem`); - nginx в Docker — `docker exec ИМЯ_КОНТЕЙНЕРА nginx -s reload` (каталог `/etc/ssl/zrazu` подключите в контейнер как том). ```sh file=zrazu-ssl-update.sh #!/bin/sh # ZRAZU: обновление SSL-сертификата по личной ссылке. Запускается cron раз в сутки. set -eu # cron даёт короткий PATH без /usr/sbin, а nginx и apachectl лежат именно там. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PULL="https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН" DIR="/etc/ssl/zrazu/example.com" KEY="$DIR/key.pem" RELOAD="nginx -t && systemctl reload nginx" COMBINED=0 umask 077 tmp=$(mktemp "$DIR/.new.XXXXXX") trap 'rm -f "$tmp"' EXIT curl -fsS --retry 3 --max-time 60 -o "$tmp" "$PULL/fullchain.pem" grep -q "BEGIN CERTIFICATE" "$tmp" || { echo "ZRAZU: по ссылке не сертификат"; exit 1; } if [ -f "$DIR/.applied" ] && cmp -s "$tmp" "$DIR/.applied"; then echo "ZRAZU: сертификат не изменился" exit 0 fi cert_pub=$(openssl x509 -in "$tmp" -noout -pubkey | openssl sha256) key_pub=$(openssl pkey -in "$KEY" -pubout | openssl sha256) if [ "$cert_pub" != "$key_pub" ]; then echo "ZRAZU: сертификат выпущен на другой ключ — ничего не меняю, положите новый ключ в $KEY" exit 1 fi openssl x509 -in "$tmp" -noout -checkend 0 >/dev/null || { echo "ZRAZU: сертификат уже не действует"; exit 1; } chmod 644 "$tmp" mv -f "$tmp" "$DIR/fullchain.pem" if [ "$COMBINED" = 1 ]; then cat "$DIR/fullchain.pem" "$KEY" > "$DIR/combined.pem.new" mv -f "$DIR/combined.pem.new" "$DIR/combined.pem" fi sh -c "$RELOAD" cp "$DIR/fullchain.pem" "$DIR/.applied" echo "ZRAZU: новый сертификат установлен, действует до $(openssl x509 -in "$DIR/fullchain.pem" -noout -enddate | cut -d= -f2)" ``` Скрипт ничего не меняет, если веб-сервер уже работает с этим сертификатом, если файл по ссылке не сертификат, если сертификат не подходит к вашему ключу или уже не действует. Конфигурацию веб-сервера он проверяет перед перезапуском, так что сломанный конфиг сайт не уронит; а если перезапуск не удался, на следующий день скрипт попробует ещё раз. Сделайте файл исполняемым и запустите один раз вручную: ```sh sudo chmod 700 /usr/local/bin/zrazu-ssl-example.com.sh sudo /usr/local/bin/zrazu-ssl-example.com.sh ``` Должно появиться «новый сертификат установлен» и файл `/etc/ssl/zrazu/example.com/fullchain.pem`. ## Шаг 3. Укажите файлы в веб-сервере (один раз) nginx — в блоке `server` сайта: ```nginx ssl_certificate /etc/ssl/zrazu/example.com/fullchain.pem; ssl_certificate_key /etc/ssl/zrazu/example.com/key.pem; ``` Apache 2.4.8 и новее — в ``: ```apache SSLCertificateFile /etc/ssl/zrazu/example.com/fullchain.pem SSLCertificateKeyFile /etc/ssl/zrazu/example.com/key.pem ``` Caddy — в блоке сайта `tls /etc/ssl/zrazu/example.com/fullchain.pem /etc/ssl/zrazu/example.com/key.pem`. HAProxy — в `bind :443 ssl crt /etc/ssl/zrazu/example.com/combined.pem`. Проверьте конфиг (`nginx -t` или `apachectl configtest`) и перезапустите веб-сервер. ## Шаг 4. Расписание ```sh echo "17 4 * * * root /usr/local/bin/zrazu-ssl-example.com.sh >> /var/log/zrazu-ssl.log 2>&1" | sudo tee /etc/cron.d/zrazu-ssl-example.com ``` Скрипт будет запускаться каждый день в 04:17 по времени сервера. Минуту можно взять любую — лучше не ровно 00. ## Проверка 1. `sudo tail /var/log/zrazu-ssl.log` — завтра там появится «сертификат не изменился»: расписание работает. 2. Сайт отдаёт наш сертификат: `echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -issuer -enddate` или страница [https://zrazu.com/tools/ssl/example.com/](https://zrazu.com/tools/ssl/example.com/). 3. В кабинете, в карточке сертификата, видно, что сервер забрал действующий сертификат. ## Если не получилось - `curl: (22) … 404` — ссылка отключена или заменена. В карточке сертификата создайте новую и замените строку `PULL` в скрипте. - `curl: (22) … 429` — слишком много запросов (больше 60 в час). Раз в сутки — с большим запасом. - «сертификат выпущен на другой ключ» — сертификат перевыпускали с новым ключом. Положите новый ключ в `key.pem` и запустите скрипт ещё раз. - `nginx: [emerg]` после перезапуска — ошибка в конфигурации сайта, не в сертификате; старый сертификат остаётся в работе, пока ошибку не исправите. --- # Windows Server и IIS URL: https://zrazu.com/ru/docs/ssl-auto-windows-iis/ Подходит для сайта на IIS (Windows Server 2016 и новее), если сертификат уже стоит на сервере — то есть закрытый ключ лежит в хранилище сертификатов Windows. Так бывает, когда CSR создавали в IIS («Create Certificate Request») или когда-то импортировали PFX. Как это работает: скрипт PowerShell забирает новый сертификат по ссылке, кладёт его в хранилище компьютера и связывает с ключом, который там уже есть (`certutil -repairstore`). Если ключа к новому сертификату на сервере нет, скрипт ничего не меняет. Затем он привязывает новый сертификат ко всем HTTPS-привязкам сайта в IIS. ## Что понадобится - Ссылка на сертификат из кабинета: `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН`. - Вход на сервер с правами администратора. - Название сайта в IIS (как в **IIS Manager → Sites**), например `Default Web Site`. ## Шаг 1. Первая установка (если сертификат ещё не стоит) Если CSR создавали в IIS: **IIS Manager → сервер → Server Certificates → Complete Certificate Request** → файл `cert.pem` из `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/cert.pem`. Если ключ у вас файлом — соберите PFX в кабинете (карточка сертификата → «Файлы» → PFX) и импортируйте: **Server Certificates → Import**. Затем **Sites → сайт → Bindings → https → SSL certificate**. ## Шаг 2. Скрипт Откройте **PowerShell от имени администратора** и создайте файл: ```powershell New-Item -ItemType Directory -Force -Path "$env:ProgramFiles\ZRAZU" | Out-Null notepad "$env:ProgramFiles\ZRAZU\zrazu-ssl.ps1" ``` В Блокнот вставьте текст ниже, в строке `$Site` укажите название своего сайта в IIS, сохраните. ```powershell file=zrazu-iis-update.ps1 # ZRAZU: обновление SSL-сертификата в IIS по личной ссылке. Запускается Планировщиком раз в сутки. $ErrorActionPreference = "Stop" $Url = "https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН" $Site = "Default Web Site" $Dir = Join-Path $env:ProgramFiles "ZRAZU" $CertFile = Join-Path $Dir "cert.cer" $ChainFile = Join-Path $Dir "chain.cer" Invoke-WebRequest -Uri "$Url/cert.pem" -OutFile $CertFile -UseBasicParsing Invoke-WebRequest -Uri "$Url/chain.pem" -OutFile $ChainFile -UseBasicParsing $New = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertFile) # Уже импортирован — не импортируем повторно, но привязку проверяем: вчера импорт мог пройти, а привязка — нет. $Have = Test-Path "Cert:\LocalMachine\My\$($New.Thumbprint)" if (-not $Have) { Import-Certificate -FilePath $ChainFile -CertStoreLocation Cert:\LocalMachine\CA | Out-Null Import-Certificate -FilePath $CertFile -CertStoreLocation Cert:\LocalMachine\My | Out-Null certutil -repairstore my $New.Thumbprint | Out-Null } $Mine = Get-Item "Cert:\LocalMachine\My\$($New.Thumbprint)" if (-not $Mine.HasPrivateKey) { if (-not $Have) { Remove-Item $Mine.PSPath } throw "ZRAZU: ключа к этому сертификату на сервере нет — сертификат не заменён" } Import-Module WebAdministration foreach ($Binding in Get-WebBinding -Name $Site -Protocol https) { if ($Binding.certificateHash -ne $New.Thumbprint) { $Binding.AddSslCertificate($New.Thumbprint, "My") } } $Until = $New.NotAfter.ToString('yyyy-MM-dd') if ($Have) { "ZRAZU: сертификат не изменился, действует до $Until" } else { "ZRAZU: новый сертификат установлен, действует до $Until" } ``` Запустите один раз вручную: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File "$env:ProgramFiles\ZRAZU\zrazu-ssl.ps1" ``` ## Шаг 3. Расписание ```powershell schtasks /Create /F /SC DAILY /ST 04:17 /RU SYSTEM /TN "ZRAZU SSL" /TR "powershell -NoProfile -ExecutionPolicy Bypass -File \"C:\Program Files\ZRAZU\zrazu-ssl.ps1\"" ``` Задание появится в **Task Scheduler → Task Scheduler Library → ZRAZU SSL** и будет запускаться каждый день в 04:17 от имени системы. ## Проверка 1. Ручной запуск пишет «новый сертификат установлен» или «сертификат не изменился». 2. **IIS Manager → Sites → сайт → Bindings → https** — выбран сертификат с новой датой. 3. Сайт: [https://zrazu.com/tools/ssl/example.com/](https://zrazu.com/tools/ssl/example.com/). 4. Результат ежедневных запусков — **Task Scheduler → ZRAZU SSL → History** (столбец **Last Run Result**: `0x0` — успех). ## Если не получилось - «ключа к этому сертификату на сервере нет» — сертификат выпущен на ключ, которого нет на этом сервере (перевыпуск с новым ключом или CSR создавали в другом месте). Импортируйте PFX с новым ключом (шаг 1). - `running scripts is disabled` — запускайте именно так, как в шагах 2–3: с `-ExecutionPolicy Bypass`. - `(404) Not Found` — ссылка отключена или заменена: создайте новую в карточке сертификата и замените `$Url`. - Сайт на IIS 8 / Windows Server 2012 — обновите сервер: эта версия Windows больше не получает обновлений безопасности. --- # Kubernetes — сертификат в TLS-секрете обновляется сам URL: https://zrazu.com/ru/docs/ssl-auto-kubernetes/ Подходит, если сайт работает в Kubernetes за ingress (ingress-nginx, Traefik, HAProxy Ingress и т. п.) и сертификат лежит в секрете типа `kubernetes.io/tls`. Ingress-контроллеры следят за секретами сами: обновили секрет — через минуту-две сайт отдаёт новый сертификат. Как это работает: CronJob раз в сутки забирает сертификат по ссылке, сравнивает с тем, что в секрете, проверяет, что он подходит к ключу из того же секрета, и заменяет только `tls.crt`. Ключ никуда не копируется. Права задачи — читать и изменять один секрет в одном namespace. ## Что понадобится - Ссылка на сертификат из кабинета: `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН`. - `kubectl` с доступом к namespace сайта. - Выход из кластера в интернет (к `api.zrazu.com` и к зеркалам Alpine Linux — образ ставит `curl`, `openssl` и `jq` при каждом запуске). ## Шаг 1. TLS-секрет (если его ещё нет) Загрузите `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/fullchain.pem` в файл `fullchain.pem` и создайте секрет со своим ключом: ```sh curl -fsS -o fullchain.pem "https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/fullchain.pem" kubectl -n ИМЯ_NAMESPACE create secret tls zrazu-tls --cert=fullchain.pem --key=key.pem ``` В Ingress сайта укажите этот секрет: `spec.tls[].secretName: zrazu-tls`. ## Шаг 2. CronJob Сохраните текст ниже в файл `zrazu-ssl.yaml`. Если секрет у вас называется иначе, замените `zrazu-tls` (он встречается дважды). ```yaml file=zrazu-ssl-k8s.yaml # ZRAZU: обновление сертификата в TLS-секрете по личной ссылке. Запускается раз в сутки. apiVersion: v1 kind: ServiceAccount metadata: name: zrazu-ssl --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: zrazu-ssl rules: - apiGroups: [""] resources: ["secrets"] resourceNames: ["zrazu-tls"] verbs: ["get", "patch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: zrazu-ssl roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: zrazu-ssl subjects: - kind: ServiceAccount name: zrazu-ssl --- apiVersion: batch/v1 kind: CronJob metadata: name: zrazu-ssl spec: schedule: "17 4 * * *" concurrencyPolicy: Forbid jobTemplate: spec: backoffLimit: 2 template: spec: serviceAccountName: zrazu-ssl restartPolicy: Never containers: - name: update image: alpine:3.20 env: - name: PULL value: "https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН" - name: SECRET value: "zrazu-tls" command: ["/bin/sh", "-c"] args: - | set -eu apk add --no-cache curl openssl jq >/dev/null SA=/var/run/secrets/kubernetes.io/serviceaccount API="https://kubernetes.default.svc/api/v1/namespaces/$(cat $SA/namespace)/secrets/$SECRET" k() { curl -fsS --cacert "$SA/ca.crt" -H "Authorization: Bearer $(cat $SA/token)" "$@"; } cd /tmp curl -fsS --retry 3 --max-time 60 -o new.pem "$PULL/fullchain.pem" grep -q "BEGIN CERTIFICATE" new.pem || { echo "ZRAZU: not a certificate"; exit 1; } k "$API" > secret.json jq -r '.data["tls.crt"]' secret.json | base64 -d > current.pem if cmp -s new.pem current.pem; then echo "ZRAZU: unchanged"; exit 0; fi jq -r '.data["tls.key"]' secret.json | base64 -d > key.pem cert_pub=$(openssl x509 -in new.pem -noout -pubkey | openssl sha256) key_pub=$(openssl pkey -in key.pem -pubout | openssl sha256) rm -f key.pem [ "$cert_pub" = "$key_pub" ] || { echo "ZRAZU: certificate is for another key"; exit 1; } openssl x509 -in new.pem -noout -checkend 0 >/dev/null || { echo "ZRAZU: expired"; exit 1; } crt=$(base64 < new.pem | tr -d '\n') k -X PATCH -H "Content-Type: application/merge-patch+json" --data "{\"data\":{\"tls.crt\":\"$crt\"}}" "$API" >/dev/null echo "ZRAZU: updated, valid until $(openssl x509 -in new.pem -noout -enddate | cut -d= -f2)" ``` Примените в namespace сайта: ```sh kubectl -n ИМЯ_NAMESPACE apply -f zrazu-ssl.yaml ``` ## Проверка 1. Запустите задачу один раз вручную: `kubectl -n ИМЯ_NAMESPACE create job --from=cronjob/zrazu-ssl zrazu-ssl-test`. 2. Журнал: `kubectl -n ИМЯ_NAMESPACE logs job/zrazu-ssl-test` — «updated» или «unchanged». 3. Сайт: [https://zrazu.com/tools/ssl/example.com/](https://zrazu.com/tools/ssl/example.com/). 4. Уберите пробную задачу: `kubectl -n ИМЯ_NAMESPACE delete job zrazu-ssl-test`. ## Если не получилось - `403` в журнале — Role не на тот секрет или не в том namespace: название в `resourceNames` должно совпадать с названием секрета. - `apk: … network error` — у кластера нет выхода в интернет к зеркалам Alpine. Соберите свой образ с `curl`, `openssl` и `jq` и уберите строку `apk add`. - «certificate is for another key» — сертификат перевыпускали с новым ключом: пересоздайте секрет (шаг 1) с новым ключом. - Секретом управляет cert-manager — тогда эта инструкция не нужна: cert-manager продлевает сертификат сам через ACME-сервер ZRAZU (в кабинете, «Установка» → ACME). --- # Хостинг с cPanel — сертификат обновляется сам URL: https://zrazu.com/ru/docs/ssl-auto-cpanel/ Подходит для хостинга с панелью cPanel: Hostiq, Hostpro, Ukrnames, GoDaddy, Namecheap, часть тарифов NIC.UA и многие другие. Признак cPanel — в панели есть разделы «Files», «Security», «Advanced», а адрес входа часто заканчивается на `:2083`. Доступ по SSH не нужен, всё делается мышью в панели. Ваш закрытый ключ хранится в самой cPanel и в скрипт не попадает: cPanel сама подбирает к новому сертификату ключ, с которым сертификат ставили впервые. ## Что понадобится - Ссылка на сертификат из кабинета: `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН`. - В cPanel — пункт **Cron Jobs** в разделе «Advanced». Если его нет, тариф не позволяет задач по расписанию: напишите хостеру или перейдите на [ручное обновление](https://zrazu.com/ru/docs/ssl-auto-panels-manual.md). - 10 минут. ## Шаг 1. Первая установка (если сертификат ещё не стоит) 1. Откройте **Security → SSL/TLS → Manage SSL sites**. 2. В поле **Domain** выберите example.com. 3. **Certificate (CRT)** — вставьте содержимое `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/cert.pem` (откройте ссылку в браузере и скопируйте весь текст). 4. **Private Key (KEY)** — ваш закрытый ключ. Если CSR создавали в этой cPanel, ключ подставится сам после вставки сертификата. 5. **Certificate Authority Bundle (CABUNDLE)** — содержимое `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/chain.pem`. 6. Нажмите **Install Certificate**. После этого ключ сохранён в cPanel, и дальше сертификат будет обновляться без него. ## Шаг 2. Скрипт обновления 1. Откройте **Files → File Manager**. Вы в домашней папке (слева вверху выбрано `/home/…`). **Не** заходите в `public_html` — скрипт не должен быть доступен с сайта. 2. **+ Folder** → название `zrazu-ssl` → **Create New Folder**. Зайдите в неё. 3. **+ File** → название `update.sh` → **Create New File**. Выделите файл → **Edit**, вставьте текст ниже и нажмите **Save Changes**. ```sh file=zrazu-cpanel-update.sh #!/bin/sh # ZRAZU: обновление SSL в cPanel по личной ссылке. Запускается cron раз в сутки. set -eu PULL="https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН" DOMAIN="example.com" UAPI=/usr/local/cpanel/bin/uapi cd "$HOME/zrazu-ssl" curl -fsS --retry 3 --max-time 60 -o cert.new "$PULL/cert.pem" curl -fsS --retry 3 --max-time 60 -o chain.new "$PULL/chain.pem" grep -q "BEGIN CERTIFICATE" cert.new || { echo "ZRAZU: по ссылке не сертификат"; exit 1; } if [ -f cert.applied ] && cmp -s cert.new cert.applied; then echo "ZRAZU: сертификат не изменился" rm -f cert.new chain.new exit 0 fi enc() { perl -0777 -pe 's/([^A-Za-z0-9_.~-])/sprintf("%%%02X", ord($1))/seg' "$1"; } out=$("$UAPI" --output=json SSL install_ssl domain="$DOMAIN" cert="$(enc cert.new)" cabundle="$(enc chain.new)") if printf '%s' "$out" | grep -Eq '"status" *: *1'; then mv -f cert.new cert.applied rm -f chain.new echo "ZRAZU: новый сертификат установлен" else echo "ZRAZU: cPanel не установила сертификат, ответ:" printf '%s\n' "$out" exit 1 fi ``` 4. Выделите `update.sh` → **Permissions** → поставьте `700` → **Change Permissions**. ## Шаг 3. Расписание 1. Откройте **Advanced → Cron Jobs**. 2. В **Cron Email** можно указать свою почту — тогда о каждой ошибке придёт письмо. 3. В **Add New Cron Job** → **Common Settings** выберите **Once Per Minute** (это только для первой проверки, на шаге 4 изменим). 4. **Command**: ```sh /bin/sh $HOME/zrazu-ssl/update.sh >> $HOME/zrazu-ssl/log.txt 2>&1 ``` 5. **Add New Cron Job**. ## Шаг 4. Проверка 1. Подождите 2 минуты и откройте в File Manager `zrazu-ssl/log.txt`. Должно быть «новый сертификат установлен», а дальше — «сертификат не изменился». 2. Вернитесь в **Cron Jobs**, в списке задач нажмите **Edit** и измените **Common Settings** на **Once Per Day**. Сохраните. 3. Проверьте сайт: [https://zrazu.com/tools/ssl/example.com/](https://zrazu.com/tools/ssl/example.com/) — сертификат ZRAZU и дата окончания. ## Чтобы хостинг не заменил наш сертификат Многие хостинги на cPanel сами ставят бесплатный сертификат (AutoSSL). Наш он по умолчанию не трогает, но если хостер это разрешил — откройте **Security → SSL/TLS Status**, отметьте example.com и `www.example.com` и нажмите **Exclude Domains from AutoSSL**. ## Если не получилось - В журнале `uapi: not found` или `Permission denied` — хостинг закрыл инструмент cPanel для скриптов. Тогда в **Security → Manage API Tokens** создайте токен, а в скрипте замените строку с `out=$(…)` на эту (ЛОГИН — имя входа в cPanel, СЕРВЕР — адрес, по которому вы заходите в cPanel, без `:2083`): ```sh out=$(curl -fsS -H "Authorization: cpanel ЛОГИН:ТОКЕН" "https://СЕРВЕР:2083/execute/SSL/install_ssl" --data-urlencode "domain=$DOMAIN" --data-urlencode "cert@cert.new" --data-urlencode "cabundle@chain.new") ``` - «cPanel не установила сертификат» и в ответе про ключ (`private key`) — в cPanel нет ключа к этому сертификату. Повторите шаг 1 со своим ключом. - `curl: (22) … 404` — ссылка отключена или заменена: создайте новую в карточке сертификата и замените строку `PULL`. --- # Панели хостинга без автоматики — обновление вручную URL: https://zrazu.com/ru/docs/ssl-auto-panels-manual/ У этих панелей нет инструмента, которым скрипт на хостинге мог бы сам поставить сертификат (или он не описан публично). Поэтому новый сертификат ставится вручную — 3–5 минут раз в несколько месяцев. Мы отправим письмо, как только будет готова новая часть подписки, со ссылкой на эту страницу. ## Что вставлять Откройте в браузере свою ссылку из кабинета и скопируйте текст: - **Сертификат (CRT)** — `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/cert.pem`; - **Цепочка / CA bundle / промежуточные** — `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/chain.pem`; - если поле одно на всё («сертификат с цепочкой», «fullchain») — `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/fullchain.pem`; - **Закрытый ключ** — ваш ключ, тот же, что и в прошлый раз. Многие панели помнят его сами. ## Где это в панели | Панель / хостинг | Путь в меню | | --- | --- | | adm.tools (hosting.ua, ukraine.com.ua) | **Хостинг → Мої сайти → сайт → Налаштування SSL → «Ваш сертифікат»** (Хостинг → Мои сайты → сайт → Настройки SSL → «Ваш сертификат»). Сертификат вставляйте с цепочкой (`fullchain.pem`) или включите «добавить промежуточные». Ключ — только RSA. Изменения действуют через 15–30 минут | | Cityhost (Hosting 2.0) | **SSL** → добавить свой сертификат → вставить сертификат и ключ | | Mirohost | **Сервер → SSL-сертифікати → Імпорт сертифіката** (Сервер → SSL-сертификаты → Импорт сертификата) | | ISPmanager (FreeHost, Tucha, Hostpro и др.) | **SSL-сертифікати → Створити / Додати → Існуючий** (SSL-сертификаты → Создать / Добавить → Существующий): сертификат, ключ, цепочка; затем в **Сайти / WWW-домени** (Сайты / WWW-домены) выберите этот сертификат | | Plesk | **Сайти та домени → домен → SSL/TLS-сертифікати → Завантажити** (Upload) (Сайты и домены → домен → SSL/TLS-сертификаты → Загрузить) | | DirectAdmin (NIC.UA, Tucha и др.) | **Account Manager → SSL Certificates → Paste a pre-generated certificate and key**; цепочка — **Click Here to paste a CA Root Certificate** | | Hostinger (hPanel) | **Websites → Manage → Security → SSL** → удалить текущий → **Import SSL** | | Hetzner (konsoleH) | **Services → SSL Manager → New Certificate → Import Certificate** (ключ без пароля, всё в PEM) | После замены проверьте сайт: [https://zrazu.com/tools/ssl/example.com/](https://zrazu.com/tools/ssl/example.com/) — должна быть новая дата окончания. ## Чтобы панель не заменила наш сертификат бесплатным Почти все эти хостинги умеют сами ставить бесплатный сертификат Let's Encrypt. Если в настройках SSL сайта включён «автоматический Let's Encrypt» или «выписать только Let's Encrypt», отключите это для домена — иначе панель может заменить наш сертификат своим. ## Как не делать это вручную Срок каждой части сертификата с годами сокращается (по правилам отрасли — до 47 дней в 2029 году), так что ручная замена станет частой. Полностью автоматические варианты: - перейти на тариф или хостинг с **cPanel** — [инструкция](https://zrazu.com/ru/docs/ssl-auto-cpanel.md); - VPS с доступом по SSH — [сервер Linux](https://zrazu.com/ru/docs/ssl-auto-linux.md); - если хостинг даёт SSH и cron (например, на старших тарифах) — скрипт для [сервера Linux](https://zrazu.com/ru/docs/ssl-auto-linux.md) часто работает и там, если панель читает сертификат из файла. Спросите поддержку хостинга, откуда сайт берёт сертификат, — и скопируйте промт для ИИ, он поможет приспособить скрипт. ## Если не получилось - Панель пишет, что ключ не подходит, — вставлен не тот ключ. Нужен именно тот, с которым заказывали сертификат (или с которым его перевыпускали). - Браузер пишет о неполной цепочке — не вставлен `chain.pem` или вставлен `cert.pem` там, где нужен `fullchain.pem`. - Ключ ECDSA, а панель принимает только RSA (adm.tools) — перевыпустите сертификат в кабинете с ключом RSA. --- # AWS — балансировщик, CloudFront, API Gateway URL: https://zrazu.com/ru/docs/ssl-auto-aws/ Подходит, если сайт отдаёт сертификат через AWS: Application или Network Load Balancer, CloudFront, API Gateway, Elastic Beanstalk. Сертификат там лежит в AWS Certificate Manager (ACM). Мы не просим ключей от вашего AWS: функция работает в вашем аккаунте и имеет право обновлять только один сертификат. Как это работает: ACM позволяет импортировать новый сертификат в тот же ARN, и все сервисы, которые им пользуются, переходят на новый без перенастройки. Функция Lambda раз в сутки сравнивает сертификат по ссылке с тем, что в ACM, и если он новый — импортирует его вместе с вашим ключом, который лежит в Secrets Manager. ## Что понадобится - Ссылка на сертификат из кабинета: `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН`. - Закрытый ключ без пароля (RSA 2048 или ECDSA P-256) — тот, с которым заказывали сертификат. - Доступ к AWS Console с правами создавать функции Lambda, секреты и роли IAM. - 20 минут. **Регион.** Для CloudFront сертификат должен быть в регионе **US East (N. Virginia) us-east-1** — и секрет, и функцию делайте там же. Для балансировщика — регион балансировщика. ## Шаг 1. Ключ — в Secrets Manager 1. **Secrets Manager → Store a new secret**. 2. **Other type of secret** → вкладка **Plaintext** → удалите пример и вставьте весь текст ключа со строками `-----BEGIN … PRIVATE KEY-----` и `-----END … PRIVATE KEY-----`. 3. **Next** → название `zrazu-ssl-key` → **Next** → **Next** → **Store**. 4. Откройте секрет и скопируйте **Secret ARN**. ## Шаг 2. Первый импорт в ACM (если сертификата там ещё нет) 1. **Certificate Manager → Import a certificate**. 2. **Certificate body** — содержимое `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/cert.pem` (откройте в браузере, скопируйте весь текст); **Certificate private key** — ваш ключ; **Certificate chain** — содержимое `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/chain.pem`. 3. **Import**. Откройте сертификат и скопируйте **ARN**. 4. Подключите сертификат к сервису, если ещё не подключили: в балансировщике — **Listeners → HTTPS:443 → Edit → Default SSL/TLS certificate**; в CloudFront — **Distribution → Edit → Custom SSL certificate**. ## Шаг 3. Функция Lambda 1. **Lambda → Create function → Author from scratch**. Название `zrazu-ssl-update`, **Runtime** — Node.js 22.x, **Create function**. 2. Во вкладке **Code** откройте `index.mjs`, замените весь текст на код ниже. Вставьте свои значения в строки `CERT_ARN` (из шага 2) и `KEY_SECRET` (из шага 1). Нажмите **Deploy**. ```js file=zrazu-aws-lambda.mjs // ZRAZU: обновление сертификата в AWS Certificate Manager по личной ссылке. Запускается раз в сутки. import { ACMClient, DescribeCertificateCommand, ImportCertificateCommand } from "@aws-sdk/client-acm"; import { GetSecretValueCommand, SecretsManagerClient } from "@aws-sdk/client-secrets-manager"; import { X509Certificate, createPrivateKey } from "node:crypto"; const PULL = "https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН"; const CERT_ARN = "arn:aws:acm:РЕГИОН:АККАУНТ:certificate/…"; const KEY_SECRET = "arn:aws:secretsmanager:РЕГИОН:АККАУНТ:secret:zrazu-ssl-key-…"; async function pem(part) { const res = await fetch(`${PULL}/${part}.pem`); if (!res.ok) throw new Error(`ZRAZU: ${part}.pem — HTTP ${res.status}`); const text = await res.text(); if (!text.includes("BEGIN CERTIFICATE")) throw new Error("ZRAZU: по ссылке не сертификат"); return text; } const serial = (s) => (s ?? "").replace(/:/g, "").replace(/^0+/, "").toUpperCase(); export const handler = async () => { const acm = new ACMClient({ region: CERT_ARN.split(":")[3] }); const [cert, chain] = await Promise.all([pem("cert"), pem("chain")]); const leaf = new X509Certificate(cert); const current = await acm.send(new DescribeCertificateCommand({ CertificateArn: CERT_ARN })); if (serial(current.Certificate?.Serial) === serial(leaf.serialNumber)) return "ZRAZU: сертификат не изменился"; if (new Date(leaf.validTo) <= new Date()) throw new Error("ZRAZU: сертификат уже не действует"); const secrets = new SecretsManagerClient({ region: KEY_SECRET.split(":")[3] }); const { SecretString: key } = await secrets.send(new GetSecretValueCommand({ SecretId: KEY_SECRET })); if (!leaf.checkPrivateKey(createPrivateKey(key))) { throw new Error("ZRAZU: сертификат выпущен на другой ключ — положите новый ключ в секрет"); } await acm.send(new ImportCertificateCommand({ CertificateArn: CERT_ARN, Certificate: Buffer.from(cert), CertificateChain: Buffer.from(chain), PrivateKey: Buffer.from(key), })); return `ZRAZU: новый сертификат установлен, действует до ${leaf.validTo}`; }; ``` 3. **Configuration → General configuration → Edit** → **Timeout** 30 секунд → **Save**. ## Шаг 4. Права функции — только на этот сертификат и этот секрет 1. **Configuration → Permissions** → щёлкните название роли (откроется IAM). 2. **Add permissions → Create inline policy** → вкладка **JSON** → вставьте текст ниже, подставив два ARN. 3. **Next** → название `zrazu-ssl-update` → **Create policy**. ```json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["acm:DescribeCertificate", "acm:ImportCertificate"], "Resource": "ARN_СЕРТИФИКАТА" }, { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "ARN_СЕКРЕТА" } ] } ``` ## Шаг 5. Расписание 1. В функции **Add trigger** → **EventBridge (CloudWatch Events)**. 2. **Create a new rule** → название `zrazu-ssl-daily` → **Schedule expression** → `rate(1 day)` → **Add**. ## Проверка 1. В функции вкладка **Test** → **Test** (событие любое). Результат — «новый сертификат установлен» или «сертификат не изменился». 2. В **Certificate Manager** у сертификата — новая дата **Expires**. 3. Сайт: [https://zrazu.com/tools/ssl/example.com/](https://zrazu.com/tools/ssl/example.com/). CloudFront разносит новый сертификат по своим узлам несколько минут. 4. Журнал каждого запуска — **Monitor → View CloudWatch logs**. ## Если не получилось - `AccessDeniedException` — в политике из шага 4 не тот ARN или не тот регион. - `HTTP 404` — ссылка отключена или заменена: создайте новую в карточке сертификата и замените строку `PULL`. - «сертификат выпущен на другой ключ» — сертификат перевыпускали с новым ключом: обновите секрет (**Retrieve secret value → Edit**). - `ValidationException` про ключ — ключ с паролем или не тот формат: нужен PEM без пароля. - Task timed out — увеличьте **Timeout** (шаг 3). --- # Azure — Application Gateway, App Service, Front Door URL: https://zrazu.com/ru/docs/ssl-auto-azure/ Подходит, если сертификат сайта лежит в **Azure Key Vault** и его берёт Application Gateway v2, App Service или Front Door (Standard/Premium). Эти сервисы сами переходят на новую версию сертификата в Key Vault, если подключены «без версии» (Latest): Application Gateway — в течение 4 часов, App Service — в течение суток, Front Door — до 72 часов. Как это работает: runbook в Azure Automation раз в сутки забирает сертификат по ссылке, сравнивает с текущим в Key Vault и, если он новый, собирает PFX с вашим ключом (ключ лежит в том же Key Vault как секрет) и импортирует новую версию. Мы не получаем доступа к вашему Azure. ## Что понадобится - Ссылка на сертификат из кабинета: `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН`. - Закрытый ключ без пароля — файл `key.pem`. Для Front Door — только RSA: ключи ECDSA Front Door не принимает. - Key Vault в модели доступа **Azure role-based access control** и права Owner на него. ## Шаг 1. Сертификат и ключ в Key Vault Откройте **Cloud Shell** (кнопка `>_` вверху портала, режим Bash), загрузите `key.pem` (**Manage files → Upload**) и выполните, подставив название своего Key Vault: ```sh VAULT=ИМЯ_KEY_VAULT curl -fsS -o fullchain.pem "https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/fullchain.pem" az keyvault secret set --vault-name $VAULT --name zrazu-ssl-key --file key.pem openssl pkcs12 -export -in fullchain.pem -inkey key.pem -out zrazu.pfx -passout pass: az keyvault certificate import --vault-name $VAULT --name zrazu-ssl --file zrazu.pfx rm key.pem zrazu.pfx ``` Если сертификат уже есть в Key Vault под другим названием, последний импорт пропустите, а в runbook (шаг 3) измените `$CertName`. Подключите сертификат к сервису без версии, если ещё не подключили: Application Gateway — **Listeners → сертификат из Key Vault**; App Service — **Certificates → Bring your own certificates → Import from Key Vault**; Front Door — **Secrets → Add certificate → версия Latest**. ## Шаг 2. Учётная запись Automation 1. **Automation Accounts → Create** → группа ресурсов и регион те же, что у Key Vault → **Review + Create**. 2. В учётной записи **Account Settings → Identity** → **System assigned: On** → **Save**. 3. В Key Vault **Access control (IAM) → Add role assignment**: роль **Key Vault Certificates Officer** → **Managed identity** → ваша учётная запись Automation → **Review + assign**. Повторите для роли **Key Vault Secrets User**. ## Шаг 3. Runbook 1. В учётной записи Automation **Process Automation → Runbooks → Create a runbook**: название `zrazu-ssl-update`, **Runbook type** — PowerShell, **Runtime version** — 7.2 → **Create**. 2. Вставьте текст ниже, в строке `$Vault` укажите название Key Vault → **Save** → **Publish**. ```powershell file=zrazu-azure-runbook.ps1 # ZRAZU: обновление сертификата в Azure Key Vault по личной ссылке. Запускается раз в сутки. $ErrorActionPreference = "Stop" $Pull = "https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН" $Vault = "ИМЯ_KEY_VAULT" $CertName = "zrazu-ssl" $KeySecret = "zrazu-ssl-key" $X509 = [Security.Cryptography.X509Certificates.X509Certificate2] Connect-AzAccount -Identity | Out-Null $full = (Invoke-WebRequest -Uri "$Pull/fullchain.pem" -UseBasicParsing).Content if ($full -is [byte[]]) { $full = [Text.Encoding]::ASCII.GetString($full) } $pems = @([regex]::Matches($full, "-----BEGIN CERTIFICATE-----[\s\S]+?-----END CERTIFICATE-----") | ForEach-Object { $_.Value }) if ($pems.Count -eq 0) { throw "ZRAZU: not a certificate" } $leaf = $X509::CreateFromPem($pems[0]) $current = Get-AzKeyVaultCertificate -VaultName $Vault -Name $CertName if ($current -and $current.Thumbprint -eq $leaf.Thumbprint) { "ZRAZU: unchanged"; return } if ($leaf.NotAfter -le (Get-Date)) { throw "ZRAZU: certificate expired" } $key = Get-AzKeyVaultSecret -VaultName $Vault -Name $KeySecret -AsPlainText $withKey = $X509::CreateFromPem($pems[0], $key) $all = New-Object Security.Cryptography.X509Certificates.X509Certificate2Collection [void]$all.Add($withKey) foreach ($pem in ($pems | Select-Object -Skip 1)) { [void]$all.Add($X509::CreateFromPem($pem)) } $pfx = $all.Export([Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12) Import-AzKeyVaultCertificate -VaultName $Vault -Name $CertName -CertificateString ([Convert]::ToBase64String($pfx)) | Out-Null "ZRAZU: updated, valid until $($leaf.NotAfter.ToString('yyyy-MM-dd'))" ``` Если ключ не подходит к сертификату, `CreateFromPem` остановится с ошибкой и ничего не будет импортировано. ## Шаг 4. Расписание В runbook **Link to schedule → Link a schedule to your runbook → Add a schedule**: название `zrazu-daily`, **Recurrence** — Recurring, каждый 1 день, время — любое ночное → **Create** → **OK**. ## Проверка 1. В runbook **Start** → **OK**. Откройте задачу (**Jobs**), вкладка **Output**: «updated» или «unchanged». 2. В Key Vault **Certificates → zrazu-ssl** — новая версия с новой датой. 3. Сайт: [https://zrazu.com/tools/ssl/example.com/](https://zrazu.com/tools/ssl/example.com/) — с учётом того, как быстро ваш сервис подхватывает новую версию (см. вверху). ## Если не получилось - `Forbidden` / `does not have secrets get permission` — не выдана одна из двух ролей шага 2, либо Key Vault в модели access policy: тогда в **Access policies** дайте identity права Certificates: Get, Import и Secrets: Get. - «The provided key does not match» — сертификат перевыпускали с новым ключом: `az keyvault secret set --vault-name $VAULT --name zrazu-ssl-key --file новый-key.pem`. - `404` — ссылка отключена или заменена: создайте новую в карточке сертификата и замените `$Pull`. - Front Door не берёт сертификат — ключ ECDSA или сертификат подключён с конкретной версией, а не Latest. --- # Google Cloud — балансировщик с Certificate Manager URL: https://zrazu.com/ru/docs/ssl-auto-gcp/ Подходит для внешнего балансировщика Google Cloud, если сертификат подключён через **Certificate Manager** (certificate map). Certificate Manager обновляет сертификат на месте: привязки не меняются. Для «классических» сертификатов балансировщика (`compute ssl-certificates`) обновления на месте нет — перенесите сертификат в Certificate Manager. Всё делается командами в **Cloud Shell** (кнопка `>_` вверху консоли Google Cloud) — ничего ставить на свой компьютер не нужно. ## Что понадобится - Ссылка на сертификат из кабинета: `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН`. - Закрытый ключ без пароля — файл `key.pem`. В Cloud Shell загрузите его через меню **⋮ → Upload**. - Роль Owner или Editor в проекте. ## Шаг 1. Скрипт обновления В Cloud Shell откройте редактор `nano zrazu-gcp-update.sh`, вставьте текст и сохраните (Ctrl+O, Enter, Ctrl+X). Если сертификат в Certificate Manager уже есть под другим названием, измените `CERT`; региональный сертификат — измените `LOCATION`. ```sh file=zrazu-gcp-update.sh #!/bin/sh # ZRAZU: обновление сертификата в Google Certificate Manager по личной ссылке. Запускается раз в сутки. set -eu PULL="https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН" CERT="zrazu-ssl" LOCATION="global" KEY=/zrazu-key/key.pem cd /tmp curl -fsS --retry 3 --max-time 60 -o new.pem "$PULL/fullchain.pem" grep -q "BEGIN CERTIFICATE" new.pem || { echo "ZRAZU: not a certificate"; exit 1; } current=$(gcloud certificate-manager certificates describe "$CERT" --location="$LOCATION" --format='value(pemCertificate)' | tr -d '\r\n ') if [ "$current" = "$(tr -d '\r\n ' < new.pem)" ]; then echo "ZRAZU: unchanged"; exit 0; fi gcloud certificate-manager certificates update "$CERT" --location="$LOCATION" --certificate-file=new.pem --private-key-file="$KEY" --quiet echo "ZRAZU: updated" ``` ## Шаг 2. Первый сертификат (если его ещё нет в Certificate Manager) ```sh curl -fsS -o fullchain.pem "https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/fullchain.pem" gcloud certificate-manager certificates create zrazu-ssl --certificate-file=fullchain.pem --private-key-file=key.pem ``` Добавьте его в certificate map балансировщика (**Certificate Manager → Certificate maps**), если ещё не добавили. ## Шаг 3. Задача и расписание Скопируйте весь блок в Cloud Shell. Регион задачи можно изменить на ближайший. ```sh REGION=europe-west1 PROJECT=$(gcloud config get-value project) SA=zrazu-ssl@$PROJECT.iam.gserviceaccount.com gcloud services enable run.googleapis.com cloudscheduler.googleapis.com secretmanager.googleapis.com certificatemanager.googleapis.com gcloud iam service-accounts create zrazu-ssl --display-name="ZRAZU SSL update" gcloud secrets create zrazu-ssl-key --data-file=key.pem gcloud secrets create zrazu-ssl-script --data-file=zrazu-gcp-update.sh for s in zrazu-ssl-key zrazu-ssl-script; do gcloud secrets add-iam-policy-binding $s --member=serviceAccount:$SA --role=roles/secretmanager.secretAccessor; done gcloud projects add-iam-policy-binding $PROJECT --member=serviceAccount:$SA --role=roles/certificatemanager.editor gcloud run jobs create zrazu-ssl --region=$REGION --image=gcr.io/google.com/cloudsdktool/google-cloud-cli:stable --service-account=$SA --set-secrets=/zrazu-key/key.pem=zrazu-ssl-key:latest,/zrazu-script/update.sh=zrazu-ssl-script:latest --command=/bin/sh --args=/zrazu-script/update.sh --max-retries=1 gcloud run jobs add-iam-policy-binding zrazu-ssl --region=$REGION --member=serviceAccount:$SA --role=roles/run.invoker gcloud scheduler jobs create http zrazu-ssl-daily --location=$REGION --schedule="17 4 * * *" --uri="https://run.googleapis.com/v2/projects/$PROJECT/locations/$REGION/jobs/zrazu-ssl:run" --http-method=POST --oauth-service-account-email=$SA rm key.pem ``` Ключ теперь только в Secret Manager, а из Cloud Shell его убрали. ## Проверка 1. Запустите задачу вручную: `gcloud run jobs execute zrazu-ssl --region=$REGION --wait`. 2. Журнал: **Cloud Run → Jobs → zrazu-ssl → Logs** — «updated» или «unchanged». 3. Сайт: [https://zrazu.com/tools/ssl/example.com/](https://zrazu.com/tools/ssl/example.com/). Балансировщику Google нужно до нескольких минут. ## Если не получилось - `PERMISSION_DENIED` — сервисному аккаунту не выдана роль из шага 3; повторите соответствующую строку. - Ошибка про ключ при `update` — сертификат перевыпускали с новым ключом: `gcloud secrets versions add zrazu-ssl-key --data-file=новый-key.pem`. - Ошибка про имена (SAN) — Certificate Manager обновляет сертификат только с тем же списком доменов. Если домены изменились, создайте новый сертификат и замените им старый в certificate map. - Скрипт изменили — обновите секрет: `gcloud secrets versions add zrazu-ssl-script --data-file=zrazu-gcp-update.sh`. --- # Cloudflare перед сайтом URL: https://zrazu.com/ru/docs/ssl-auto-cloudflare/ Если сайт работает через прокси Cloudflare (оранжевое облачко в DNS), посетители видят сертификат, который отдаёт Cloudflare, а не ваш сервер. ## Тарифы Free и Pro Cloudflare сам выдаёт бесплатный сертификат для посетителей, и поставить туда свой на этих тарифах нельзя. Наш сертификат нужен на **вашем сервере** — чтобы связь Cloudflare → сервер тоже была защищена и проверялась (режим **SSL/TLS → Full (strict)**). Настройте автоматическое обновление на сервере по инструкции для него: [сервер Linux](https://zrazu.com/ru/docs/ssl-auto-linux.md), [cPanel](https://zrazu.com/ru/docs/ssl-auto-cpanel.md), [Kubernetes](https://zrazu.com/ru/docs/ssl-auto-kubernetes.md). ## Тарифы Business и Enterprise — свой сертификат в Cloudflare Здесь можно загрузить свой сертификат (**SSL/TLS → Edge Certificates → Upload Custom SSL Certificate**), но Cloudflare его не продлевает. Скрипт ниже раз в сутки забирает свежий сертификат по ссылке и обновляет его в Cloudflare через API. Запускайте его на любом сервере Linux с `curl` и `openssl` — обычно на том, что стоит за Cloudflare. ### Что понадобится - Ссылка на сертификат из кабинета: `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН`. - Закрытый ключ без пароля. Ключ ECDSA — без блока `EC PARAMETERS`. - **Zone ID** — на странице домена в Cloudflare, справа внизу (**API → Zone ID**). - **ID сертификата**: **SSL/TLS → Edge Certificates**, строка вашего сертификата → развернуть → **Certificate ID**. Если сертификата ещё нет, сначала загрузите его вручную (кнопка выше) из `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/fullchain.pem` и со своим ключом. - **API-токен**: **My Profile → API Tokens → Create Token → Create Custom Token** → разрешение **Zone → SSL and Certificates → Edit**, **Zone Resources** — только этот домен. ### Шаг 1. Ключ и скрипт на сервере ```sh sudo mkdir -p /etc/ssl/zrazu/example.com sudo chmod 700 /etc/ssl/zrazu/example.com sudo nano /etc/ssl/zrazu/example.com/key.pem sudo nano /usr/local/bin/zrazu-cloudflare-example.com.sh ``` В первый файл вставьте ключ, во второй — скрипт ниже с вашими `ZONE`, `CERT_ID` и `TOKEN`. ```sh file=zrazu-cloudflare-update.sh #!/bin/sh # ZRAZU: обновление собственного сертификата в Cloudflare по личной ссылке. Запускается cron раз в сутки. set -eu PULL="https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН" DIR="/etc/ssl/zrazu/example.com" ZONE="ZONE_ID" CERT_ID="CERTIFICATE_ID" TOKEN="API_TOKEN" API="https://api.cloudflare.com/client/v4/zones/$ZONE/custom_certificates" umask 077 cd "$DIR" [ -f cert_id ] || echo "$CERT_ID" > cert_id curl -fsS --retry 3 --max-time 60 -o new.pem "$PULL/fullchain.pem" grep -q "BEGIN CERTIFICATE" new.pem || { echo "ZRAZU: по ссылке не сертификат"; exit 1; } if [ -f applied.pem ] && cmp -s new.pem applied.pem; then echo "ZRAZU: сертификат не изменился"; exit 0; fi cert_pub=$(openssl x509 -in new.pem -noout -pubkey | openssl sha256) key_pub=$(openssl pkey -in key.pem -pubout | openssl sha256) [ "$cert_pub" = "$key_pub" ] || { echo "ZRAZU: сертификат выпущен на другой ключ — положите новый key.pem"; exit 1; } json() { awk '{ gsub(/\\/, "\\\\"); gsub(/"/, "\\\""); printf "%s\\n", $0 }' "$1"; } printf '{"certificate":"%s","private_key":"%s","bundle_method":"force"}' "$(json new.pem)" "$(json key.pem)" > body.json out=$(curl -sS -X PATCH "$API/$(cat cert_id)" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" --data @body.json) rm -f body.json if printf '%s' "$out" | grep -q '"success": *true'; then id=$(printf '%s' "$out" | tr -d '\n' | grep -o '"result": *{.*' | grep -o '"id": *"[0-9a-f]*"' | head -n 1 | cut -d'"' -f4) [ -z "$id" ] || echo "$id" > cert_id mv -f new.pem applied.pem echo "ZRAZU: сертификат в Cloudflare обновлён" else echo "ZRAZU: Cloudflare отказал:" printf '%s\n' "$out" exit 1 fi ``` Cloudflare может выдать обновлённому сертификату новый ID — скрипт запоминает его в файле `cert_id` сам. ### Шаг 2. Первый запуск и расписание ```sh sudo chmod 700 /usr/local/bin/zrazu-cloudflare-example.com.sh sudo /usr/local/bin/zrazu-cloudflare-example.com.sh echo "23 4 * * * root /usr/local/bin/zrazu-cloudflare-example.com.sh >> /var/log/zrazu-ssl.log 2>&1" | sudo tee /etc/cron.d/zrazu-cloudflare-example.com ``` ### Проверка 1. Первый запуск пишет «сертификат в Cloudflare обновлён», следующие — «сертификат не изменился». 2. **SSL/TLS → Edge Certificates** — у вашего сертификата новая дата **Expires On**. 3. Сайт: [https://zrazu.com/tools/ssl/example.com/](https://zrazu.com/tools/ssl/example.com/). ### Если не получилось - `Authentication error` — токен без разрешения **SSL and Certificates → Edit** или не на этот домен. - `custom certificate not found` — неправильный `CERT_ID`: удалите файл `/etc/ssl/zrazu/example.com/cert_id`, исправьте строку в скрипте и запустите снова. - «сертификат выпущен на другой ключ» — сертификат перевыпускали с новым ключом: замените `key.pem`. --- # Конструкторы сайтов — Tilda, Wix, Shopify, Prom, Horoshop URL: https://zrazu.com/ru/docs/ssl-auto-site-builders/ Если сайт сделан на конструкторе, сертификат для него выдаёт и продлевает сам конструктор — бесплатно. Поставить туда сертификат ZRAZU в большинстве случаев невозможно, а где можно — только вручную и на самых дорогих тарифах. Поэтому для сайта на конструкторе **наш SSL покупать не нужно**: включите бесплатный в настройках конструктора. | Конструктор | Бесплатный сертификат | Свой сертификат | | --- | --- | --- | | Tilda | да, включается в настройках сайта | нет | | Wix | да | только тариф Enterprise, вручную | | Shopify | да | нет | | Webflow | да | только тариф Enterprise, вручную, не продлевается сам | | WordPress.com | да | нет | | Squarespace | да | нет | | Prom.ua | да, автоматически после подключения домена | нет | | Horoshop | да | нет | | Weblium | да | нет | | Google Sites | да | нет | | Framer | да | нет | ## Что делать 1. Подключите домен к конструктору по его инструкции (записи DNS в кабинете ZRAZU, раздел «DNS»). 2. Включите бесплатный SSL в настройках конструктора, если он не включился сам. Обычно сертификат появляется через несколько часов после того, как домен стал указывать на конструктор. 3. Проверьте: [https://zrazu.com/tools/ssl/example.com/](https://zrazu.com/tools/ssl/example.com/). ## Когда наш сертификат всё же нужен - **Другой сайт или сервис на том же домене** (например, `api.example.com` на своём сервере) — сертификат нужен там, и для него есть [инструкции под серверы и хостинги](https://zrazu.com/ru/docs/ssl-auto.md). - **Wix или Webflow на тарифе Enterprise и требование сертификата с проверкой организации (OV)** — свой сертификат можно загрузить вручную; продлевать его придётся так же вручную, перед каждой новой частью подписки. Уже купили сертификат для сайта на конструкторе, а он не пригодился? Напишите нам — разберёмся. --- # Ссылка на сертификат — справка для разработчиков URL: https://zrazu.com/ru/docs/ssl-auto-pull-api/ Личная ссылка отдаёт действующий сертификат подписки без входа в кабинет — для скриптов, задач по расписанию и собственных интеграций. Создаётся в кабинете: карточка сертификата → «Установка» → «Ссылка для сервера». ## Адреса `https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН` — базовый адрес, к нему добавляется название файла: | Запрос | Что возвращает | | --- | --- | | `GET https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/fullchain.pem` | сертификат сайта, за ним промежуточные сертификаты центра — для nginx, Apache 2.4.8+, Caddy, HAProxy, Kubernetes | | `GET https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/cert.pem` | только сертификат сайта | | `GET https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/chain.pem` | только промежуточные сертификаты | Тип ответа — `application/x-pem-file`, текст PEM. Закрытого ключа ссылка не отдаёт и не принимает: ключ остаётся у вас, а следующие части подписки выпускаются на тот же ключ. ## Что именно отдаётся Действующая версия подписки — последний выпущенный сертификат. Если он отозван или срок истёк, ссылка отвечает `404`: предыдущую версию не отдаём, потому что центр сертификации мог отозвать её при замене. Когда появляется следующая часть подписки, по той же ссылке начинает отдаваться она — ссылку менять не нужно. Если сертификат перевыпускали с новым ключом, ссылка отдаст сертификат на новый ключ. Поэтому перед установкой сверяйте открытый ключ сертификата со своим закрытым ключом — так делают все скрипты в наших инструкциях: ```sh openssl x509 -in fullchain.pem -noout -pubkey | openssl sha256 openssl pkey -in key.pem -pubout | openssl sha256 ``` Строки должны совпасть. ## Коды ответа | Код | Когда | | --- | --- | | `200` | сертификат в теле ответа | | `304` | условный запрос, сертификат не изменился | | `404` | ссылка неизвестна, отключена или просрочена, либо в подписке сейчас нет действующего сертификата — ответ одинаковый, чтобы не подсказывать, существовала ли ссылка | | `429` | слишком много запросов; заголовок `Retry-After` — через сколько секунд можно снова | ## Условные запросы Ответ содержит `ETag` (меняется вместе с версией сертификата) и `Last-Modified` (время выпуска). Запрос с `If-None-Match` или `If-Modified-Since` получит `304`, пока сертификат тот же: ```sh curl -fsS --etag-save etag.txt --etag-compare etag.txt -o fullchain.pem "https://api.zrazu.com/ssl-pull/zsp_ВАШ_ТОКЕН/fullchain.pem" ``` Условные запросы не обязательны: файл маленький, и сравнить его с установленным (`cmp`) так же просто. ## Лимиты - 60 запросов в час на одну ссылку — для задачи раз в сутки или даже раз в час этого с большим запасом; - 300 запросов в минуту с одного IP-адреса. ## Безопасность - Ссылка — секрет уровня «не публиковать»: она отдаёт только публичный сертификат, но у кого она есть, тот видит, когда сертификат забирают. - Ответы не кэшируются (`Cache-Control: no-store`), не индексируются и не передают ссылку в `Referer`. - Ссылку показываем один раз; у нас хранится только её отпечаток. Новая ссылка в карточке сертификата сразу отключает предыдущую; там же — «Отключить». - Ссылка действует до конца подписки. ## Для ИИ-агентов Полная документация ZRAZU в формате для языковых моделей: [https://zrazu.com/llms.txt](https://zrazu.com/llms.txt) (оглавление) и [https://zrazu.com/llms-full.txt](https://zrazu.com/llms-full.txt) (все страницы). Каждая страница документации есть и в Markdown — добавьте `.md` к адресу без косой черты в конце. --- # Что проверяет мониторинг ZRAZU URL: https://zrazu.com/ru/docs/monitoring-checks/ Мониторинг в [кабинете](https://vse.zrazu.com/monitoring/) следит за вашими доменами постоянно. Проверки вручную настраивать не нужно: достаточно, чтобы домен был в списке. ## Что именно мы проверяем Каждая проверка — отдельный «слой». | Слой | О чём он | | --- | --- | | Реестр | Не отключён ли домен, не истёк ли срок, не начался ли перенос к другому регистратору | | Делегирование | Отвечают ли DNS-серверы домена | | DNSSEC | На месте ли ключи и подписи, совпадает ли запись в реестре | | Сертификат | Не истёк ли SSL-сертификат и не истекает ли он через 7 дней или меньше | | Почта | Работает ли почтовый узел домена | | Сайт | Открывается ли сайт | | CT-журналы | Журналы прозрачности сертификатов (CT) для вашего домена | Не все слои есть на каждом тарифе, смотрите [тариф и добавление доменов](https://zrazu.com/ru/docs/monitoring-add.md). ## Свои и внешние домены - **Ваши домены в ZRAZU** проверяются автоматически каждую минуту, со всеми слоями. В бесплатный лимит они не входят. - **Внешние домены** зарегистрированы в другом месте. Их вы добавляете сами. Бесплатно это 25 доменов и проверка каждые 15 минут. Если перенос или смену NS вы сделали через ZRAZU, мы об этом знаем и не считаем это аварией. ## Когда мы решаем, что это проблема Одна неудачная проверка ещё не тревога. Инцидент открывается, только когда проблему подтвердили минимум две точки проверки и она повторилась три раза подряд за три минуты. Так короткий сбой сети не заваливает вас письмами. Советы вроде «настройте DMARC» — не авария. Вы видите их на странице домена, но будить они не будут. Если слой не удалось проверить, мы не говорим ни «всё хорошо», ни «сломано». ## Что считаем серьёзным Всегда, даже ночью, сообщаем: домен отключён реестром, зона не отвечает, домен переводят к другому регистратору, срок истёк, проблемы с ключами или подписями DNSSEC. О [уведомлениях и тихих часах](https://zrazu.com/ru/docs/monitoring-alerts.md) читайте отдельно. ## Если не получилось - **Домена нет в списке.** Добавьте его по [инструкции](https://zrazu.com/ru/docs/monitoring-add.md). - **Слоя «Сайт» нет.** Для внешних доменов на бесплатном тарифе его нет. - **Рядом с доменом «На паузе: лимит тарифа».** Доменов больше, чем разрешает тариф. Выберите тариф с большим лимитом. - **Мониторинг показывает «ещё не проверяли».** Домен только что добавлен, дождитесь первой проверки. --- # Добавить домены в мониторинг и тариф URL: https://zrazu.com/ru/docs/monitoring-add/ Домены, зарегистрированные в ZRAZU, попадают на мониторинг сами. Домены других регистраторов добавьте вручную: вы увидите их состояние, срок и сертификат без переноса регистрации. ## Как добавить домены 1. Откройте [кабинет](https://vse.zrazu.com/monitoring/add/): раздел «Мониторинг», страница «Добавить домены в мониторинг». 2. Выберите способ: - **Список**: вставьте домены, каждый с новой строки; - **CSV**: загрузите файл со списком; - **Cloudflare**: нажмите «Показать зоны», отметьте нужные и нажмите «Поставить на мониторинг». 3. Посмотрите итог: «Добавлено на мониторинг», «Уже под наблюдением», «Сверх бесплатного лимита», «Пропущено». Для Cloudflare нужен ключ только для чтения. Если ключ уже сохранён в организации, вставлять его снова не нужно. Ключ — это секрет: никому не отправляйте его в переписке или чате. Строки, которые мы пропустили (например, опечатка в имени), можно вернуть в поле кнопкой «Исправить пропущенные». ## Бесплатный тариф и платные | | Бесплатно | Платные тарифы | | --- | --- | --- | | Внешних доменов | до 25 | больше, в зависимости от тарифа | | Проверка | каждые 15 минут | чаще | | Слои | реестр, делегирование, DNSSEC, сертификат, почта | добавляются сайт и CT-журналы | Цены смотрите на [странице цен](https://zrazu.com/prices/). Ваши домены в ZRAZU проверяются каждую минуту со всеми слоями при любом тарифе. ## Как подключить платный тариф 1. Откройте [тариф мониторинга](https://vse.zrazu.com/monitoring/tariff/). 2. Выберите период оплаты: ежемесячно или ежегодно. 3. Нажмите «Подключить» у нужного тарифа. 4. Отметьте «Начать сразу» и нажмите «Перейти к оплате». Оплатить можно с баланса или картой. Подключать и менять тариф может только роль, которая платит. Если у вас уже платный тариф, неиспользованные дни зачтутся в цену нового. ## Автопродление, смена и отмена - «Автопродление»: тариф продлевается сам с баланса в конце периода. За 7 дней до этого мы отправляем письмо с суммой. - «Изменить»: переход на другой тариф. Кнопка «Со следующего периода» планирует смену на потом, а «Оставить как есть» отменяет запланированное. - «Отменить тариф»: мониторинг возвращается к бесплатному. Деньги за неиспользованные дни возвращаются на баланс. ## Если не получилось - **«Сверх бесплатного лимита».** На бесплатном тарифе уже 25 доменов. Уберите лишние («Снять с мониторинга») или подключите тариф с большим лимитом. - **«Не хватает на балансе».** Продление не прошло. Пополните баланс до указанной даты, иначе тариф станет бесплатным. - **«Доменов на паузе из-за лимита тарифа».** Они вернутся под наблюдение, когда вы оплатите тариф с большим лимитом. - **«Нет активного ключа Cloudflare».** Добавьте ключ Cloudflare в организации или вставьте токен только для чтения. - **«Cloudflare отвечает дольше обычного».** Попробуйте ещё раз через минуту. - **«Тариф видит роль с доступом к доменам».** Попросите владельца организации изменить вашу роль. --- # Уведомления и инциденты мониторинга URL: https://zrazu.com/ru/docs/monitoring-alerts/ Когда [мониторинг](https://zrazu.com/ru/docs/monitoring-checks.md) подтверждает проблему, открывается **инцидент**, а вам приходит уведомление. Когда всё восстановилось, мы тоже пишем об этом: «восстановлено, длилось столько-то минут». ## Каналы уведомлений Настройка — в [кабинете](https://vse.zrazu.com/settings/notifications/), страница «Уведомления». | Канал | Как подключить | | --- | --- | | Почта | Введите адрес в поле «Почта для уведомлений» и нажмите «Добавить» | | Telegram | Нажмите «Привязать Telegram», затем «Открыть в Telegram» | | Вебхук | Добавьте адрес: только https, порт 443, не внутренняя сеть, не больше трёх на организацию | Для вебхука мы показываем **секрет подписи** один раз. Сохраните его сразу, потом его не будет видно. Каждый запрос подписан заголовком, поэтому прежде чем доверять телу запроса, сверьте подпись. Секрет никому не передавайте. Ссылка для привязки Telegram действует 15 минут. Если Telegram не доставил сообщение, мы дублируем его почтой. ## Что именно отправлять В таблице на этой странице есть категории: «Сроки», «Здоровье», «Изменения и планы», «Деньги», «Ежемесячный отчёт». Для каждой выбирайте каналы. Критичные уведомления выключить нельзя. ## Тихие часы В поле «Тихие часы» укажите промежуток в формате `22:00-08:00` и нажмите «Сохранить». В это время обычные сообщения ждут утренней сводки. Критичное будит всегда: домен отключён, зона не отвечает, домен выводят, срок истёк, проблемы с DNSSEC. ## Инциденты Все инциденты — в разделе «Мониторинг → Инциденты». В карточке инцидента вы видите: - состояние, «продолжается» или «восстановлено», и важность: «незначительное», «важное», «критическое»; - «Домены», которых это касается. Когда несколько доменов сломались по одной причине, мы объединяем их в один инцидент; - «Проверка из нескольких точек»: откуда проблему увидели; - «Как мы уведомили»: канал и статус доставки; - «Хронология». ## Что можно сделать 1. Откройте инцидент из сообщения или из списка. 2. «Отложить на час»: напомним, если не восстановится. 3. «Это ожидаемо, не беспокоить сутки»: например, вы сами изменили настройки. 4. Если причина — недавнее изменение DNS, нажмите «Откатить изменение». В течение 60 секунд его можно отменить. 5. Отметьте, была ли тревога по делу («Да, по делу» или «Нет, ложная»). ## Если не получилось - **Письма не приходят.** Рядом с адресом написано «Этот ящик не принимает письма». Укажите другой адрес. - **Telegram не привязывается.** Ссылка действует 15 минут, создайте новую. - **Вебхук не добавляется.** Проверьте, что адрес https, порт 443, он не ведёт во внутреннюю сеть и что их не больше трёх. - **Откатить изменение нельзя.** После него зону уже меняли. Откатите нужную ревизию в истории DNS домена. - **«Критичное выключить нельзя».** Это осознанное ограничение. --- # Начало работы: регистрация, вход, организация URL: https://zrazu.com/ru/docs/account-start/ Всё в ZRAZU — домены, SSL, мониторинг, деньги — живёт в **кабинете**. Чтобы им пользоваться, нужны аккаунт (это вы) и организация («папка», где лежат домены, баланс и команда). ## Регистрация 1. Откройте [страницу регистрации](https://vse.zrazu.com/signup/). 2. Введите почту и придумайте пароль — не меньше 12 символов. Пароль хранится только в виде хеша, а не открытым текстом. 3. По желанию поставьте галочку про персональные предложения ZRAZU. Без неё мы их не отправляем. 4. Нажмите «Сохранить и продолжить». На почту придёт письмо со ссылкой. 5. Откройте письмо и подтвердите адрес кнопкой на странице, которую оно откроет. Хотите без пароля — есть кнопка «Зарегистрироваться через Google». Google передаёт нам только вашу почту, пароля от Google мы не видим. ## Вход На [странице входа](https://vse.zrazu.com/login/) три способа: | Способ | Как это работает | | --- | --- | | **Пароль** | Почта и пароль. Дальше, если включён второй шаг, — код из приложения или ключ доступа. | | **Ссылка на почту** | Нажимаете «Отправить ссылку» — на почту приходит одноразовая ссылка для входа (действует 15 минут). Пароль не нужен. | | **Passkey (ключ доступа)** | Вход отпечатком пальца, лицом или PIN-кодом устройства. | Есть также «Войти через Google». SMS для входа мы не используем — только для уведомлений. Забыли пароль — нажмите «Забыли пароль?» под формой. Не получается войти совсем — «Не получается войти? Восстановить доступ» (см. [безопасность входа](https://zrazu.com/ru/docs/account-security.md)). ## Первая организация Сразу после входа кабинет напишет «Пока нет организации». Создайте первую: 1. В поле «Название организации» оставьте подставленное название или впишите своё (от 2 до 200 символов, хотя бы две буквы или цифры). 2. Нажмите «Создать». Вы становитесь **владельцем** этой организации. Название видит вся команда — в переключателе в шапке и в письмах о команде. ## Несколько организаций Ведёте домены для разных компаний? Создайте отдельную организацию под каждую: у каждой свои домены, свой баланс и своя команда. 1. В шапке кабинета откройте меню с вашей текущей организацией. 2. Нажмите «Сменить организацию» и выберите нужную — или «Создать организацию». Один человек может быть владельцем не больше чем 10 организаций. Роль в каждой организации своя. ## Название и реквизиты организации Раздел «Настройки» → «Организация»: - **Название** меняет только владелец: впишите новое и нажмите «Сохранить». - Ваша роль в организации показана здесь же. - Реквизиты для счетов и актов — в «Деньги» → «Плательщики» ([см. счета и плательщики](https://zrazu.com/ru/docs/account-documents.md)). Ваш личный профиль (имя, почта, язык писем) — «Настройки» → «Профиль». ## Если не получилось - **«Неверная почта или пароль»** — проверьте адрес, раскладку клавиатуры и Caps Lock. - **«Подтвердите почту, чтобы войти»** — пароль правильный, но адрес ещё не подтверждён. Мы только что отправили новое письмо; проверьте «Спам» или нажмите «Войти» ещё раз. - **«Слишком много попыток»** — вход на паузе на несколько минут: так мы защищаем аккаунт от подбора пароля. Подождите или восстановите пароль. - **«Код не подошёл»** — возьмите свежий код в приложении (он меняется каждые 30 секунд) и введите ещё раз. Проверьте и время на телефоне. - **«Аккаунт с этой почтой уже есть»** при входе через Google — войдите паролем, ссылкой на почту или ключом доступа и подключите Google в «Безопасность входа». - **«Можно владеть не больше чем 10 организациями»** — достигнут лимит; передайте одну из организаций другому владельцу. --- # Команда и роли в организации URL: https://zrazu.com/ru/docs/account-team/ В разделе «Команда» → «Люди и доступы» вы видите всех, кто работает в организации, их роли и приглашения, которые ещё ждут. Командой управляют владелец и администратор. ## Роли Роль определяет, что человек может делать. Права роли ключи API никогда не превышают: ключ не сильнее своего владельца. | Роль | Что может | | --- | --- | | **Владелец** | Всё, включая вывод доменов к другому регистратору (код переноса), переименование организации и управление владельцами | | **Администратор** | Домены, DNS, контакты домена, замок переноса, мониторинг, деньги и документы, команда, ключи API | | **Технический специалист** | Видеть домены, менять DNS, настраивать мониторинг, выпускать ключи API; деньги — нет | | **Бухгалтер** | Видеть домены и баланс, платить и пополнять баланс, скачивать счета и акты; DNS — нет | | **Только просмотр** | Видеть домены, баланс и счета; ничего не меняет | В организации всегда остаётся хотя бы один владелец. ## Как пригласить человека 1. Откройте «Команда» → «Люди и доступы» и нажмите «Пригласить». 2. Укажите почту коллеги и выберите роль. 3. Нажмите «Отправить приглашение». Коллега получит письмо со ссылкой. Приглашение действует 7 дней. Войти по нему можно только с двухэтапной проверкой — коллега настроит её при входе. Пока приглашение не принято, в списке оно отмечено «приглашён …, ещё не принято»; его можно отозвать кнопкой «Отменить приглашение». ## Сменить роль или убрать человека 1. В списке найдите человека и выберите новую роль в его строке — он получит об этом письмо. 2. Чтобы убрать из состава, нажмите «Убрать из команды». В течение 60 секунд действие можно отменить. Себя в этом списке вы не понижаете и не убираете. ## Владельцы: дополнительная осторожность Роль владельца даёт наибольшие права, поэтому для неё действуют отдельные правила: - Дать роль владельца, снять её или убрать владельца может только владелец — и только после явного подтверждения «Да, подтверждаю». - Новый владелец получит код переноса доменов только через 72 часа, и в эти 72 часа не сможет понизить или убрать вас. - Приглашайте владельцем только того, кого знаете лично. ## Если коллеге восстановили доступ Когда коллега восстановил доступ к аккаунту (например, потерял телефон), рядом с ним в списке появится отметка «Ограничение после восстановления доступа до …». До этой даты он не меняет серверы имён, контакты и команду этой организации. Если вы уверены, что это действительно он, нажмите «Подтвердить: это действительно коллега». Проверьте голосом или вживую, а не письмом или мессенджером с этого аккаунта: доступ мог восстановить злоумышленник. Подтверждение снимает ограничение. ## Журнал входов Внизу страницы — «Журнал входов» за 30 дней: кто, когда, откуда и как входил, было ли это новое устройство и отклонён ли вход из-за неверного кода. Его видят те, кто управляет командой. ## Если не получилось - **«Похоже, в адресе ошибка»** — проверьте адрес коллеги. - **«Этот человек уже в команде»** — приглашать второй раз не нужно. - **«Приглашение недействительно или устарело — попросите отправить новое»** — срок (7 дней) прошёл или приглашение отозвано. Отправьте новое. - **«Для этого нужна другая роль в организации»** — действие доступно только администратору или владельцу. - **«Изменить роль владельца может только владелец»** / **«Убрать владельца может только владелец»** — попросите владельца сделать это самому. - **«В организации должен остаться хотя бы один владелец»** — сначала назначьте владельцем другого человека. --- # Безопасность входа: ключ доступа, код, сессии URL: https://zrazu.com/ru/docs/account-security/ Аккаунт в ZRAZU управляет доменами и деньгами, поэтому его стоит защитить вторым шагом входа. Настройка — в «Настройки» → «Безопасность входа». ## Второй шаг входа Второй шаг — то, что мы просим после пароля. Есть два способа, достаточно одного: - **Ключ доступа (passkey)** — отпечаток пальца, лицо или PIN вашего устройства вместо кода. Быстрее пароля, и его не украсть на поддельном сайте. - **Код из приложения** — шесть цифр из приложения-аутентификатора (Google Authenticator, Authy, 1Password). SMS для входа мы не используем — только для уведомлений: номер телефона легко перехватить. Без второго шага вход держится только на пароле, а опасные действия с доменами (например, смена серверов имён или снятие замка) закрыты, пока вы его не настроите. После входа кабинет может предложить настроить ключ — выбирайте «Создать ключ доступа» или «Код из приложения». «Позже» напомнит через месяц, «Не спрашивать» отключает напоминание. ## Добавить ключ доступа 1. Откройте «Безопасность входа» и в разделе «Ключи доступа» нажмите «Добавить ключ доступа». 2. Укажите название («телефон», «ноутбук»), чтобы потом узнать ключ. 3. Подтвердите отпечатком, лицом или PIN в окне браузера. Рядом с каждым ключом видно, когда его добавили и когда пользовались в последний раз. Удалить можно кнопкой «Удалить» — кроме последнего способа подтвердить вход. ## Подключить код из приложения 1. В разделе «Код из приложения» нажмите «Подключить». 2. Отсканируйте QR-код приложением. Не получается — введите показанный секрет вручную. 3. Впишите шестизначный код и нажмите «Подтвердить». Статус меняется на «подключено». Сменить телефон — «Заменить приложение». Секрет и QR-код — это ключ к вашему аккаунту: никому их не показывайте и не отправляйте в чат. ## Резервные коды Когда вы подключаете второй шаг, мы показываем 10 одноразовых резервных кодов. Они нужны, если потеряете телефон. - Сохраните их сразу: скачайте файл или нажмите «Скопировать все». Второй раз мы их не покажем. - Каждый код срабатывает один раз. Сколько осталось — видно в «Резервные коды». - «Перевыпустить» создаёт новые; старые перестают действовать. ## Пароль и почта - **Сменить пароль** — введите текущий и новый (не меньше 12 символов). Другие сессии после этого завершаются. - **Задать пароль** — если вы зарегистрировались через Google или входите по ссылке, первый пароль можно задать без старого, подтвердив кодом. - **Сменить почту для входа** — укажите новый адрес и нажмите «Отправить подтверждение». Письмо с подтверждением уйдёт на новый адрес, а предупреждение — на текущий. После смены пароля или почты перенос доменов недоступен 72 часа: код переноса в это время не выдаём. Так никто не выведет домен сразу после взлома. ## Вход через Google Можно подключить Google кнопкой «Подключить Google». Google заменяет только пароль: для опасных действий всё равно нужен второй шаг. Отключить Google можно, если есть пароль или ключ доступа. ## Сессии В разделе «Сессии» — устройства, с которых вы вошли. Своё помечено «это устройство». - «Выйти» закрывает одну сессию. - «Выйти на всех устройствах, кроме этого» закрывает остальные. Неактивные сессии мы закрываем сами. О каждом входе с нового устройства отправляем письмо с кнопкой «Это не я». ## Если потеряете доступ Откройте «Если потеряете доступ» → «Как восстановить доступ». Путь зависит от ситуации: | Ситуация | Что будет | | --- | --- | | Есть почта, нет телефона | Подтвердите почтой; второй шаг сбросим через 24 часа, уведомив все ваши контакты | | Нет ни почты, ни телефона | Документ и история отношений, ожидание 72 часа, подтверждает второй человек | | Компания | Запрос на бланке, сверка с государственным реестром, 72 часа и два сотрудника | По телефону личность мы не подтверждаем никогда. При сомнении мы отказываем — даже если вы действительно владелец: лучше подождать, чем потерять домен. Есть резервные коды? Тогда просто введите один из них вместо кода из приложения на шаге входа — и после входа замените приложение и выпустите новые коды. ## Если не получилось - **«Код не подошёл — проверьте время на телефоне»** — код зависит от времени; включите автоматическое время. - **«Это последний способ подтвердить вход»** — сначала добавьте другой ключ или приложение, потом удаляйте. - **«Текущий пароль не подошёл»** — проверьте раскладку и Caps Lock или воспользуйтесь «Забыли пароль?» на странице входа. - **«Этот аккаунт Google уже подключён к другому аккаунту ZRAZU»** — используйте другой аккаунт Google. - **«Чтобы подключить Google, подтвердите вход ещё раз»** — войдите заново и повторите. --- # Баланс и оплата: карта и счёт на IBAN URL: https://zrazu.com/ru/docs/account-balance/ Услуги ZRAZU оплачиваются с **баланса** организации. Баланс пополняется картой или переводом по счёту; заказ можно также оплатить напрямую при оформлении. Актуальные цены — на странице [цен](https://zrazu.com/prices/). ## Где баланс Сумма баланса всегда видна в шапке кабинета. Нажмите на неё, чтобы увидеть разбивку и кнопку «Пополнить». Полное движение денег — на странице «Движение денег», а что заказано и оплачено — в «Деньги» → «Заказы». Баланс в организации может быть не один: свой у каждого продавца — «с НДС» и «без НДС». Заказ оплачивается балансом того режима, который соответствует вашему плательщику. О плательщиках — в [счетах и документах](https://zrazu.com/ru/docs/account-documents.md). Бонусы (если есть) показаны отдельно от ваших денег и не выводятся. Пополнять баланс и управлять картами может владелец, администратор или бухгалтер. ## Пополнить баланс Откройте «Деньги» → «Способы оплаты». Пополнение — три шага: 1. **Кому платите** — выберите «С НДС» (для плательщиков НДС) или «Без НДС» (для физлиц и неплательщиков НДС). 2. **Чем платите** — «Картой» (деньги на балансе сразу) или «Счёт на оплату» (перевод на IBAN, зачислим, как только деньги поступят). 3. **Сколько** — выберите сумму или впишите другую целым числом гривен. Картой за один раз можно пополнить до определённой суммы — её покажет форма; бóльшую сумму оплатите счётом. ### Картой 1. Выберите сохранённую карту или «Новая карта на странице банка». 2. По желанию оставьте галочку «Сохранить карту для следующих пополнений». 3. Нажмите «Оплатить … на странице банка» и введите данные карты на странице банка. Номер карты вы вводите только на странице банка; у нас остаются маска и токен банка. Если к оплате картой применяется комиссия, форма покажет её и сумму «к оплате» до того, как вы нажмёте кнопку. ### Счётом на IBAN 1. Выберите «Счёт на оплату», укажите сумму и плательщика, на кого выписать счёт. 2. Нажмите «Выписать счёт». 3. Скопируйте реквизиты (получатель, IBAN, код, банк, МФО, назначение платежа) — каждая строка копируется отдельно — и оплатите из любого банковского приложения. Счёт можно открыть для печати или PDF. Назначение платежа копируйте дословно: по номеру счёта мы находим перевод в выписке. Зачисляем сумму, которая пришла. Перевели меньше — доплатите разницу с тем же назначением. Счета со статусами «Ждём оплату», «Зачислено …» и «Отменён» собраны в разделе «Ваши счета». Если вы уже заплатили, не отменяйте счёт. ## Сохранённые карты На странице «Способы оплаты» есть раздел «Сохранённые карты»: - «Сделать основной» — карта по умолчанию; - «Удалить» — карта будет удалена, токен банка стираем сразу; прошлые платежи остаются в истории; - карта хранится у того продавца, через которого её ввели: карту одного режима нельзя использовать для баланса другого. Если у карты заканчивается срок, кабинет попросит добавить новую. ## Оплатить заказ После оформления корзины откроется шаг оплаты: - **Картой** — оплатите на странице банка. Если часть покрывает баланс, кабинет покажет «Картой …, ещё … — с баланса». - **С баланса** — если его хватает, нажмите «Оплатить с баланса». - **Счётом (IBAN)** — реквизиты появятся на странице; как только банк проведёт перевод, заказ оплатится сам. Страницу можно закрыть: состояние всегда видно в «Заказах». Если на балансе уже есть часть суммы, нажмите «Учесть баланс» — счёт будет только на разницу. Поле «Плательщик в счёте и акте» под способами оплаты решает, на кого выписать счёт и акт — подробно в [Счета, акты и плательщики](https://zrazu.com/ru/docs/account-documents.md). После оплаты мы регистрируем домен в реестре, обычно в течение минуты. Перенос домена от другого регистратора занимает до 5 дней. Пока SSL-сертификат не выпущен, деньги за него возвращаются полностью. ## Разовые работы («Начисления») Иногда мы готовим разовую услугу вне прайса. Она появляется в «Деньги» → «Заказы» на согласование: сначала вы согласовываете предел суммы кнопкой «Согласен», потом мы работаем и списываем только фактические расходы, остальное возвращается. Без вашего согласия больше предела мы не спишем. Не согласны — «Не согласен». ## Если не получилось - **«Банк отклонил оплату — деньги не списаны»** — попробуйте другую карту или счёт на IBAN. - **«Банк ещё не ответил — зачислим, как только ответит»** — подождите. Если банк подтвердил оплату, деньги уже на балансе: посмотрите «Движение денег». - **«Банк отклонил оплату или она не завершилась»** на странице заказа — деньги не списаны, домены не зарегистрированы. Оплатите ещё раз. Имена не забронированы: пока вы повторяете оплату, их может зарегистрировать кто-то другой. - **Имена заняли, пока вы оформляли** — они не вошли в сумму заказа; остальное можно оплатить. - **«Оплата картой для этого продавца ещё не подключена»** — пополните переводом по счёту. - **Деньги списаны, а заказ не оплачен** — напишите в [поддержку](https://zrazu.com/ru/docs/account-support.md) с номером заказа. - **Заказ не удалось выполнить** — команда ZRAZU возвращает деньги на баланс. --- # Счета, акты и плательщики URL: https://zrazu.com/ru/docs/account-documents/ Счета и акты нужны бухгалтерии. Они выписываются на **плательщика** — компанию, ФЛП, физическое лицо или нерезидента. Видит и скачивает их роль с доступом к деньгам: бухгалтер, администратор или владелец. ## Плательщики Раздел «Деньги» → «Плательщики». Пока плательщиков нет, документы выписываем на физическое лицо. Чтобы счета и акты шли на компанию или ФЛП, добавьте её. 1. Нажмите «Добавить плательщика». 2. Выберите тип: компания, ФЛП, физическое лицо или нерезидент. От типа зависит режим НДС: плательщику НДС — документы с НДС, остальным — без НДС. 3. Впишите название так, как оно должно стоять в счёте, например «ООО «Кава»» или «ФЛП Коваль Елена Николаевна». 4. Укажите код: ЕГРПОУ — 8 цифр, РНУКПН — 10 цифр. Для плательщика НДС добавьте ИНН плательщика НДС (12 цифр для компании, 10 — для ФЛП). 5. По желанию заполните адрес — мы печатаем его в счёте и акте — и почту для документов. 6. Нажмите «Сохранить плательщика». Если на плательщика уже были платежи, его название, вид и коды изменить нельзя, чтобы не переписать прошлые документы. Реквизиты изменились — добавьте нового плательщика, а старого нажмите «Архивировать»: новые документы на него выписываться не будут, прошлые остаются как есть. ## Где счета и акты Раздел «Деньги» → «Счета и акты», вкладка «Документы». Каждая строка — счёт или акт оказанных услуг с номером, датой, заказами, состоянием и суммой. | Состояние | Что означает | | --- | --- | | ждём оплату | счёт выписан, деньги ещё не поступили | | оплачен | оплата зачислена | | оплачен частично — доплатите | поступила только часть суммы | | не нужен — заказы оплачены | заказы оплачены другим способом | | отменён | счёт отменён | | выполнено | акт: услуга оказана | Счёт появляется, когда вы выписываете его на пополнение или оплату заказов; акт — когда заказ выполнен. При оплате заказа поле «Плательщик в счёте и акте» решает, на кого выписать документы. Если плательщик в режиме заказа (с НДС или без) один, он выбран сразу; если несколько — выберите нужного. Выбранный плательщик становится плательщиком заказа: на него выписываем и счёт, и акт, как бы вы ни платили — с баланса, картой или переводом. Плательщика ещё нет — ссылка «Добавить плательщика» рядом с полем. ## Как скачать 1. Нажмите номер нужного документа — откроется его страница. 2. Нажмите «Печать» или «Сохранить PDF». Акты в кабинете — копии без подписи. Подписанный экземпляр пришлём по запросу: напишите в [поддержку](https://zrazu.com/ru/docs/account-support.md). ## История денег и выгрузка Вкладка «История проводок» показывает каждую операцию с балансом простыми словами: когда, что, с какого кошелька («Живые деньги» или «Бонусы») и на какую сумму. История не меняется задним числом: исправления делаем отдельной проводкой. Кнопка «Экспорт CSV» скачивает историю файлом, который удобно передать бухгалтеру. ## Если не получилось - **«Счета и история оплат доступны ролям с правом просмотра оплат»** — вашей роли не дан доступ к деньгам; попросите владельца сменить роль (см. [команда и роли](https://zrazu.com/ru/docs/account-team.md)). - **«Документов здесь пока нет»** — ничего ещё не выписано и не выполнено. - **«Выберите страну из списка»** при добавлении нерезидента — выберите страну из выпадающего списка. - **Плательщика не видно в списке** — проверьте, не архивирован ли он. --- # Обращения в поддержку из кабинета URL: https://zrazu.com/ru/docs/account-support/ Все ваши обращения собраны в разделе «Обращения». Это одна нить на все каналы: пишите с почты, из Telegram или чата в кабинете — вся переписка соберётся в одном месте, а отвечать можно откуда удобно. ## Откуда можно писать - **Чат в кабинете** — кнопка «Новое обращение» вверху раздела. - **Почта** — письмо на адрес поддержки с почты вашего аккаунта. - **Telegram** — бот, привязанный одноразовой ссылкой из кабинета. - Телефона нет: по телефону мы не можем подтвердить вашу личность и не станем этого делать. ## Новое обращение в кабинете 1. Откройте «Обращения» и нажмите «Новое обращение». 2. Выберите тему: «Домен и DNS», «Почта», «Деньги и документы», «Вход и доступ» или «Другое». 3. При необходимости выберите домен, которого это касается. 4. В поле «Что случилось» опишите: домен, что видите и что ожидали. Хотя бы одно предложение. 5. Скриншот или документ добавьте кнопкой «Добавить файл»: до 5 файлов за раз, вместе не больше 10 МБ. Исполняемые файлы мы не принимаем. 6. Нажмите «Отправить». Обращение получит номер. В списке видно его состояние: «принято», «взято в работу», «ждём вас» или «закрыто». Фильтры «Открытые», «Закрытые» и «Все» помогут найти нужное. ## Когда отвечаем Обычный вопрос — до конца следующего рабочего окна. Срок ответа по конкретному обращению виден в списке. ## Чего поддержка не делает Сменить владельца, сменить серверы имён, выдать код переноса, вывести деньги — только вы, в кабинете. Если вы попросите о таком письмом или в Telegram, мы пришлём ссылку «подтвердить в кабинете»: так никто не сделает этого от вашего имени. Пароли, коды из приложения и резервные коды никому не отправляйте — ни в письме, ни в чате. ## Если не получилось - **«Не больше 5 файлов за раз»** / **«Файлы вместе — не больше 10 МБ»** — добавьте меньше файлов или сожмите их. - **«Обращение закрыто давно — создайте новое»** — на старое уже нельзя ответить; откройте новое. - **«Слишком много запросов»** — подождите немного и повторите. Если срочно, напишите письмом. - **«Укажите почту, на которую ответить»** или **«Проверьте почту аккаунта»** — убедитесь, что почта в профиле указана верно и подтверждена. --- # API ZRAZU — обзор для разработчиков URL: https://zrazu.com/ru/docs/api-overview/ API ZRAZU даёт скриптам и программам то, что вы делаете в кабинете: прочитать список доменов, зоны DNS и сертификаты, поставить домен на мониторинг. Работает по ключу, который вы выпускаете сами. Отдельно есть [MCP для ИИ-агентов](https://zrazu.com/ru/docs/api-mcp.md): он открытый, без ключа, но только читает и показывает паспорт публичного домена. ## Что умеет API по ключу Базовый адрес: `https://api.zrazu.com/v1`. | Группа | Что можно | | --- | --- | | Ключ | `GET /v1/api-keys/current` — какие права, домены и срок у этого ключа | | Домены | `GET /v1/domains` — список доменов организации со сроком, автопродлением и замками | | Мониторинг | `GET /v1/monitoring`, `POST /v1/monitoring`, `DELETE /v1/monitoring/{name}` — читать, ставить и снимать имена | | DNS | `GET /v1/dns/zones`, `GET /v1/dns/zones/{name}`; изменение записей и новые зоны — см. [домены и DNS через API](https://zrazu.com/ru/docs/api-domains-dns.md) | | SSL | `GET /v1/ssl/catalog`, `GET /v1/ssl/certificates`, файлы сертификата, заказ и перевыпуск | | Баланс | `GET /v1/balance` — баланс организации | Что доступно именно вашему ключу, зависит от его прав: см. [ключи API](https://zrazu.com/ru/docs/api-keys.md). Регистрировать и продлевать домены, менять контакты и замки, получать код переноса через API нельзя. Это сделано намеренно: такие действия остаются в кабинете. ## Вход по ключу Ключ передают только в заголовке: ```sh curl -H "Authorization: Bearer zr_live_..." https://api.zrazu.com/v1/api-keys/current ``` Ключ в адресе запроса (`?key=…`) отклоняется: адреса попадают в журналы серверов и браузеров. Ключ начинается с `zr_live_`. Ключ, вставленный в код страницы сайта, не сработает: API не принимает запросы со страниц чужих сайтов в браузере, и это намеренно. ## Безопасный повтор изменений Каждый запрос, который что-то меняет (`POST`, `PUT`, `DELETE`), требует заголовка `Idempotency-Key` — произвольная строка до 120 символов, например UUID. ```sh curl -X POST https://api.zrazu.com/v1/monitoring \ -H "Authorization: Bearer zr_live_..." \ -H "Idempotency-Key: 6f1d8c0e-5b2a-4c1f-9a3e-0d7b2e4a1c11" \ -H "Content-Type: application/json" \ -d '{"names": ["example.com.ua"]}' ``` - Повторный запрос с тем же ключом в течение 24 часов вернёт первый ответ с заголовком `Idempotent-Replayed: true` — второе изменение не выполняется. - Тот же `Idempotency-Key` с другим телом запроса — ошибка `422`. - Если первый запрос ещё выполняется, повтор получит `409` — попробуйте через мгновение. Если ключ выпущен с отметкой «Изменения — только с моим подтверждением», изменение не выполняется сразу: API отвечает `202` и `plan_id`, а человек подтверждает план в кабинете в разделе «Планы». ## Формат ответов и ошибок Списки отдаются страницами: `{"data": [...], "next": "…"}`. Чтобы получить следующую страницу, передайте `next` как параметр `after`; `limit` — до 500, по умолчанию 100. Ошибка всегда одной формы: ```json { "error": { "code": "right_missing", "message": { "uk": "…", "en": "…" } } } ``` `code` стабилен — на него можно опираться в коде; текст в `message` может меняться. | Код | HTTP | Что значит | | --- | --- | --- | | `key_required` | 401 | нет заголовка `Authorization: Bearer zr_…` | | `key_invalid` | 401 | это не ключ ZRAZU или в нём ошибка | | `key_unknown` | 401 | ключ не найден | | `key_revoked`, `key_expired`, `key_idle` | 401 | ключ отозван, срок истёк или его не вызывали 90 дней | | `key_in_query` | 400 | ключ передан в адресе запроса | | `ip_not_allowed` | 403 | ключ не работает с этого IP-адреса | | `right_missing` | 403 | у ключа нет нужного права | | `out_of_scope` | 403 | имя вне доменов ключа | | `not_found` | 404 | зона или сертификат не найдены | | `idempotency_key_required` | 400 | нет заголовка `Idempotency-Key` | | `idempotency_key_reused` | 422 | `Idempotency-Key` уже использован с другим запросом | | `rate_limited` | 429 | слишком много вызовов; заголовок `Retry-After` — через сколько секунд повторить | ## Лимиты | Что | Лимит | | --- | --- | | Один ключ | 120 вызовов в минуту и в 25 раз больше за час | | Один IP-адрес | 240 вызовов в минуту | | Изменяющие вызовы организации | 1000 в сутки — все ключи вместе | Для отдельных организаций лимит в минуту может быть другим. Ответ `429` содержит `Retry-After`: подождите столько секунд и повторите запрос с тем же `Idempotency-Key`. ## Если не получилось - **`401 key_required`.** Добавьте заголовок `Authorization: Bearer zr_live_…` — именно `Bearer` и пробел перед ключом. - **`401 key_unknown` или `key_invalid`.** Проверьте, что ключ скопирован полностью, без пробела в конце. Если ключ потеряли, выпустите новый: показать старый нельзя. - **`403 right_missing`.** У ключа нет нужного права. Откройте `GET /v1/api-keys/current`, посмотрите `permissions`, при необходимости выпустите новый ключ с нужным правом. - **`403 ip_not_allowed`.** Для ключа задан список IP-адресов, а запрос пришёл с другого. Добавьте адрес в кабинете или выпустите новый ключ. - **`429 rate_limited`.** Уменьшите частоту запросов и соблюдайте `Retry-After`. - **`400 idempotency_key_required`.** Добавьте заголовок `Idempotency-Key` к запросу, который меняет данные. Цены на услуги — на [странице цен](https://zrazu.com/prices/). --- # Ключи API — как создать и ограничить URL: https://zrazu.com/ru/docs/api-keys/ Ключ API — это пароль для программы. Он разрешает только то, что вы выбрали: отдельные действия с отдельными доменами. Ключ никогда не сильнее человека, который его выпустил, и проверяется при каждом вызове. Ключи видят владелец, администратор и техник организации. ## Создать ключ 1. Откройте [кабинет](https://vse.zrazu.com/team/api-keys/) → «Команда» → «API-ключи». 2. Нажмите «Новый ключ». 3. Шаг «Шаблон»: выберите готовый набор («Только чтение», «Мониторинг», «Сертификаты SSL», «Зоны DNS — для менеджера», «Зоны DNS — полный доступ») или «Свой набор». 4. Шаг «Права»: при необходимости измените, что именно разрешить. 5. Шаг «Домены»: «Все домены организации, включая будущие» или «Только выбранные» (до 100 доменов). 6. Шаг «Условия»: название, чей ключ, разрешённые IP-адреса, срок действия. 7. Шаг «Итог»: проверьте, что ключ сможет, и нажмите «Подтвердить вход и выпустить». 8. Скопируйте ключ кнопкой «Копировать» и сохраните в менеджере паролей или секретах вашего сервиса. Нажмите «Я скопировал(-а) ключ». Ключ показывается один раз. Мы храним только его отпечаток и не можем показать ключ вторично. Потеряли — отзовите и выпустите новый. Ключ выглядит так: `zr_live_…` и дальше длинная строка. Никогда не вставляйте его в чаты, письма или код страниц сайта. ## Права Права называются по схеме «что.действие». Класс показывает худшее последствие: 0 — чтение, 1 — обратимые изменения, 2 — деньги. | Право | Что разрешает | Класс | | --- | --- | --- | | `domain.read` | читать домены, сроки и замки — без контактов | 0 | | `monitor.read` | читать состояние мониторинга | 0 | | `monitor.edit` | ставить и снимать домены с мониторинга | 1 | | `dns.read` | читать зоны DNS и их записи | 0 | | `dns.edit` | менять записи зон и проверять делегирование — с письмом и журналом | 1 | | `dns.zone_create` | добавлять новые зоны — только ключ на все зоны | 1 | | `keys.zones_grant` | добавлять и убирать зоны в других ключах организации — права и срок не меняет | 1 | | `ssl.read` | читать сертификаты и скачивать их файлы | 0 | | `ssl.reissue` | перевыпускать сертификат с новым ключом в пределах оплаченного срока | 1 | | `ssl.order` | заказывать сертификаты с баланса организации | 2 | | `billing.read` | видеть баланс организации — без счетов и платежей | 0 | Права `dns.zone_create` и `keys.zones_grant` действуют только для ключа на все домены и зоны организации. Ключ не может больше, чем ваша роль в организации: если роль этого не даёт, право в кабинете недоступно. ## Чего ключ не сможет никогда Регистрировать и продлевать домены, менять контакты и замки, получать код переноса, отзывать сертификаты. Также ключ не управляет людьми и ключами, способами оплаты, вторым фактором и почтой входа, не удаляет аккаунт. Эти действия есть только в кабинете. ## Условия ключа - **Название** — для вас, чтобы отличить ключ в списке; до 80 символов. - **Чей ключ.** «Личный» перестанет работать, если вас уберут из организации. «Организации» — для CI и интеграций, переживёт смену людей. - **Разрешённые IP-адреса** — один адрес или сеть (CIDR) на строку, до 20. Ключ будет работать только с них. Для ключа с правом `ssl.order` список адресов обязателен: такой ключ тратит деньги. - **Срок действия.** Для класса 0 по умолчанию и максимум — 365 дней. Для класса 1 по умолчанию 90 дней, максимум 365. Для класса 2 (деньги) по умолчанию 30 дней, максимум 90. - **«Изменения — только с моим подтверждением».** Ключ будет предлагать изменение планом, а применять будете вы — в «Планах». Для SSL и зон DNS эта опция пока недоступна. Ключ, который 90 дней никто не вызывал, отключается сам: забытый ключ в старом репозитории — самый частый источник утечки. ## Отозвать ключ 1. Откройте «Команда» → «API-ключи». 2. В строке ключа нажмите «Отозвать» и подтвердите: «Да, отозвать». Ключ перестаёт работать сразу. Если подозреваете утечку и не знаете, какой ключ, нажмите «Отозвать все»: все действующие ключи организации (у техника — ваши личные) остановятся немедленно. Нужно подтверждение входа. ## Проверить, что ключ работает ```sh curl -H "Authorization: Bearer zr_live_..." https://api.zrazu.com/v1/api-keys/current ``` Ответ покажет права, домены, разрешённые IP и срок действия ключа. Подробности о вызовах — в [обзоре API](https://zrazu.com/ru/docs/api-overview.md). ## Если не получилось - **Нет пункта «API-ключи».** Ключи видят владелец, администратор и техник. Попросите владельца организации изменить роль или выпустить ключ. - **Право неактивно и подписано «ваша роль этого не даёт».** Ключ не может иметь права, которого нет у вашей роли. - **Кнопка выпуска просит подтвердить вход.** Это защита: выпуск ключа требует повторного подтверждения входа. - **Слишком много ключей.** В организации может быть до 50 действующих ключей и до 20 новых в сутки; отзовите ненужные. - **Ключ отвечает `401 key_expired` или `key_idle`.** Срок истёк или ключ 90 дней не вызывали — выпустите новый. --- # Домены и DNS через API — примеры URL: https://zrazu.com/ru/docs/api-domains-dns/ Во всех примерах ключ-заглушка `zr_live_...`. Подставьте свой ключ из [кабинета](https://vse.zrazu.com/team/api-keys/). Общие правила (вход, повтор, ошибки, лимиты) — в [обзоре API](https://zrazu.com/ru/docs/api-overview.md). ## Список доменов Нужно право `domain.read`. ```sh curl -H "Authorization: Bearer zr_live_..." "https://api.zrazu.com/v1/domains?limit=100" ``` В ответе для каждого домена: `name`, `expires_at`, `autorenew`, `transfer_lock`, `contact_lock`, `frozen`. Если страниц больше, передайте `next` из ответа как `after`. ## Мониторинг Права `monitor.read` и `monitor.edit`. ```sh # состояние мониторинга curl -H "Authorization: Bearer zr_live_..." https://api.zrazu.com/v1/monitoring # поставить под наблюдение до 100 имён за вызов curl -X POST https://api.zrazu.com/v1/monitoring \ -H "Authorization: Bearer zr_live_..." \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{"names": ["example.com.ua", "example.net"]}' # снять с наблюдения curl -X DELETE https://api.zrazu.com/v1/monitoring/example.net \ -H "Authorization: Bearer zr_live_..." \ -H "Idempotency-Key: $(uuidgen)" ``` В ответе на добавление поле `skipped` перечисляет строки, которые не удалось принять, с причиной: опечатка не пропадает молча. ## Прочитать зону DNS Нужно право `dns.read`. ```sh # список зон curl -H "Authorization: Bearer zr_live_..." https://api.zrazu.com/v1/dns/zones # записи одной зоны curl -H "Authorization: Bearer zr_live_..." https://api.zrazu.com/v1/dns/zones/example.com.ua ``` Ответ на второй запрос: ```json { "name": "example.com.ua", "serial": 12, "records": [ { "name": "@", "type": "A", "ttl": 300, "content": "203.0.113.10", "prio": null }, { "name": "www", "type": "CNAME", "ttl": 300, "content": "example.com.ua.", "prio": null } ] } ``` Имена записей — относительно зоны: `@` для самой зоны, `www` для `www.example.com.ua`. `serial` понадобится для изменения. ## Изменить записи зоны Нужно право `dns.edit`. Порядок: прочитали зону, изменили список, отправили его целиком вместе с `base_serial` — номером, который вы прочитали. ```sh curl -X PUT https://api.zrazu.com/v1/dns/zones/example.com.ua \ -H "Authorization: Bearer zr_live_..." \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "base_serial": 12, "summary": "новый сервер сайта", "records": [ { "name": "@", "type": "A", "ttl": 300, "content": "203.0.113.20" }, { "name": "www", "type": "CNAME", "ttl": 300, "content": "example.com.ua." } ] }' ``` - В списке должны быть **все** записи зоны, а не только изменённые: что не отправлено, будет удалено. - Записей в зоне — до 500. - Если зону изменили между вашим чтением и записью, ответ `409`: прочитайте зону снова и повторите. - Перед записью зона проверяется так же, как в кабинете: ошибка в записи — `409` без изменений, предупреждения возвращаются в поле `warnings`. - После изменения владельцам и администраторам приходит письмо, а изменение остаётся в истории зоны с названием ключа. Не более 60 изменений в час на ключ. ## Новая зона и проверка делегирования Нужно право `dns.zone_create` — только для ключа на все зоны организации. ```sh curl -X POST https://api.zrazu.com/v1/dns/zones \ -H "Authorization: Bearer zr_live_..." \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{"name": "example.com.ua", "import_current": true}' ``` - Для домена, зарегистрированного в ZRAZU, зона включается на наших серверах имён. С `import_current: true` записи, которые сейчас отвечают у прежнего провайдера, переносятся. - Для домена у другого регистратора создаётся заявка. Укажите у регистратора серверы имён из ответа, затем запустите проверку: ```sh curl -X POST https://api.zrazu.com/v1/dns/zones/example.com.ua/verify \ -H "Authorization: Bearer zr_live_..." \ -H "Idempotency-Key: $(uuidgen)" ``` Ответ `202` означает, что проверка запущена. Запросите `GET /v1/dns/zones` позже, чтобы увидеть статус. ## Если не получилось - **`403 right_missing`.** У ключа нет нужного права — см. [ключи API](https://zrazu.com/ru/docs/api-keys.md). - **`403 out_of_scope`.** Домен вне списка доменов ключа. - **`404 not_found`.** Зоны нет, она не ваша или не входит в домены ключа — ответ одинаковый. - **`409` при `PUT`.** Зону изменили после вашего чтения или запись содержит ошибку. Прочитайте зону снова и повторите с новым `base_serial`. - **`503 dns_closed`.** DNS ZRAZU временно не принимает изменений; повторите позже. - **`409 zone_exists`.** Зона для этого домена уже создана. - **`429`.** Слишком много изменений: подождите `Retry-After` секунд. --- # MCP для ИИ-агентов — паспорт домена URL: https://zrazu.com/ru/docs/api-mcp/ MCP — способ дать ИИ-ассистенту доступ к внешнему инструменту. Сервер ZRAZU открытый: ключ и регистрация не нужны. У него один инструмент — паспорт домена, и он только читает. ## Что получает агент Паспорт домена: кто регистратор, когда домен зарегистрирован и когда истекает, статусы реестра человеческим языком, когда имя может освободиться, серверы имён, состояние DNS, сертификата сайта и почты с готовыми исправлениями. - Через MCP ничего нельзя изменить: ни домен, ни записи, ни счёт. - Персональные данные владельца домена мы не отдаём никогда. - Слова «свободно» через MCP нет. Доказать, что имя свободно, может только реестр, и только в момент покупки. Если источники не подтвердили, что домен занят, ответ — «не смогли проверить». ## Подключить Адрес сервера: `https://api.zrazu.com/mcp`. Аутентификация — «без аутентификации». **Claude, ChatGPT и другие клиенты с удалёнными MCP-серверами.** 1. Откройте настройки подключений (коннекторов) вашего клиента и добавьте собственный MCP-сервер. 2. Укажите адрес `https://api.zrazu.com/mcp`. 3. В поле аутентификации выберите «без аутентификации». **Claude Code:** ```sh claude mcp add --transport http zrazu https://api.zrazu.com/mcp ``` **Cursor, VS Code и другие клиенты с конфигурацией JSON:** ```json { "mcpServers": { "zrazu": { "type": "http", "url": "https://api.zrazu.com/mcp" } } } ``` Транспорт — Streamable HTTP. Каждый запрос — отдельный POST, ответ — один JSON. ## Инструмент `domain_passport` Вход — `domain`: имя домена (`kava.com.ua`), адрес страницы (`https://kava.com.ua/menu`) или почты (`hello@kava.com.ua`). Домен выделяется сам, до 300 знаков. Пример запроса к агенту: «Проверь домен kava.com.ua: когда истекает и всё ли в порядке с почтой». Выход — паспорт в JSON и тот же текст: | Поле | Что это | | --- | --- | | `state` | `taken` — домен занят; `unknown` — не смогли проверить | | `phrase` | одно предложение о домене человеческим языком | | `bars` | четыре полосы состояния: `domain`, `dns`, `site`, `mail` | | `statuses` | статусы реестра с пояснением | | `lifecycle` | этап, даты регистрации и окончания, когда имя может освободиться | | `nameservers`, `registrar` | серверы имён и регистратор | | `problems` | найденные проблемы, чем грозят, готовое исправление | | `checked_at` | когда именно смотрели | Если имя не удалось проверить, ответ короткий: `state: "unknown"`, причина `reason` и `retry: true` — стоит спросить позже. ## Запрос вручную Сессия начинается с `initialize`; сервер возвращает номер сессии в заголовке `Mcp-Session-Id`. Номер действует 24 часа. ```sh curl -si https://api.zrazu.com/mcp -H 'content-type: application/json' \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}' \ | grep -i mcp-session-id curl -s https://api.zrazu.com/mcp -H 'content-type: application/json' -H 'Mcp-Session-Id: <номер>' \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"domain_passport","arguments":{"domain":"kava.com.ua"}}}' ``` ## Лимиты | Что | Лимит | | --- | --- | | Паспорт через MCP | 30 в минуту и 300 в час на сессию | | Все сессии с одного адреса | в 10 раз больше | | Новые сессии с одного адреса | 600 в час | Паспорт кэшируется до 6 часов (для домена в очереди на удаление — 15 минут). Когда именно смотрели, видно в `checked_at`. ## Приватность Каждый запрос записывается в журнал без вашего адреса и без имени домена: только инструмент, результат и время. Каждое проверенное имя на 90 дней попадает в стоп-лист: мы не берём его себе, в стоп-листе лежит отпечаток имени, а не само имя. ## Если не получилось - **Ответ `404`.** Номер сессии просрочен (действует 24 часа). Начните с `initialize` снова. - **Результат с `isError: true`.** Агент отправил имя без зоны, IP-адрес вместо домена или слишком длинную строку. Текст ошибки можно показать человеку. - **`state: "unknown"` и `retry: true`.** Источники не подтвердили состояние или исчерпан лимит. Спросите через несколько минут. - **Клиент просит ключ.** Выберите «без аутентификации»: ключ API здесь не нужен. - Чтобы работать с вашими доменами (список, DNS, сертификаты), используйте [API по ключу](https://zrazu.com/ru/docs/api-overview.md). --- # Как стать реселлером ZRAZU URL: https://zrazu.com/ru/docs/resellers-program/ Реселлер продаёт домены .UA и сертификаты SSL своим клиентам из своего биллинга, а в ZRAZU покупает по оптовым ценам. Подходит хостерам, регистраторам и всем, кто уже ведёт учёт клиентов в биллинге (WHMCS, BILLmanager, HostBill и других). Если вы веб-студия и просто хотите вести домены клиентов в одном кабинете, вам нужна другая программа: [кабинет веб-студии](https://zrazu.com/ru/docs/resellers-studio.md). ## Как это устроено Путь один, и весь он идёт через кабинет, без писем в поддержку: 1. Анкета в кабинете. 2. Договор. 3. Песочница для проверки вашего модуля. 4. Боевой логин. Старый поставщик может работать параллельно: переключать всё сразу не нужно. ## Шаг 1. Подайте анкету Анкету подаёт владелец или администратор организации: именно они подписывают договор. Остальным участникам команды кабинет покажет только статус заявки. 1. Войдите в [кабинет](https://vse.zrazu.com/reseller/) и откройте раздел «Реселлер». Если ваша организация ещё не реселлер, там будет страница «Стать реселлером». 2. Выберите биллинг. Для WHMCS у нас готовы модули доменов и SSL. Другой биллинг подключается по инструкции EPP: тогда укажите его название. 3. Отметьте зоны, которые планируете продавать («Все» или отдельные), и будете ли продавать SSL. 4. Укажите, сколько новых доменов в месяц. Достаточно примерно: это только для старта. 5. Введите ЕГРПОУ (8 цифр, юрлицо) или РНОКПП ФЛП (10 цифр). На это лицо заключим договор. 6. Укажите, с кем заключать договор: имя и фамилию, телефон и почту. Сайт и комментарий можно пропустить. 7. Нажмите «Отправить заявку». ## Шаг 2. Дождитесь ответа После отправки в кабинете появится «Заявка получена». Менеджер свяжется по почте из анкеты, обычно в течение двух рабочих дней, и договорится о договоре. Если заявку не приняли, в кабинете будет отметка «Предыдущая заявка не принята» с причиной. После этого можно подать новую. ## Шаг 3. Песочница и боевой логин После договора в разделе «Реселлер» → «Подключение EPP» вы сами создаёте логин песочницы, подключаете к ней свой модуль и проходите обычный сценарий: регистрация, перенос и другое. Деньги в песочнице тестовые. Боевой логин заводит менеджер после проверки. Подробно: [подключение EPP](https://zrazu.com/ru/docs/resellers-epp.md). Для WHMCS нужны ещё модули: [модули для WHMCS](https://zrazu.com/ru/docs/resellers-whmcs.md). ## Что берёт на себя реселлер Подключение действует по договору. Реселлер: - проверяет своих клиентов и их право распоряжаться доменом; - отвечает за достоверность данных владельца домена, переданных в контактах; - принимает жалобы на злоупотребления (abuse) по своим клиентам и выполняет наши требования в согласованный срок; - не обещает своим клиентам больше, чем обещаем мы. ## Чего нет - Международных зон (gTLD): пока нет канала. - Эмуляции чужих HTTP API. Для этого есть наш API с ключами. О ценах: [прайс реселлера](https://zrazu.com/ru/docs/resellers-prices.md). Краткое описание программы есть на странице [https://zrazu.com/resellers/](https://zrazu.com/resellers/). ## Если не получилось - **«Заявку подаёт владелец или администратор организации — они подписывают договор».** Войдите под владельцем или администратором, либо попросите их подать анкету. - **«Заявка уже ждёт рассмотрения».** Одна заявка уже подана, новую подавать не нужно. Ждите письма от менеджера. - **«Организация уже реселлер».** Ваша организация уже в программе: заходите в «Реселлер» → «Подключение EPP». - **«Договор реселлера закрыт».** Новая анкета не нужна: чтобы возобновить сотрудничество, напишите менеджеру через «Поддержку». - **«ЕГРПОУ — 8 цифр (юрлицо) или РНОКПП — 10 цифр (ФЛП)».** Проверьте номер: только цифры, без букв. - **Ошибка в телефоне или почте.** Исправьте поле: в телефоне цифры, можно «+», пробелы и скобки; почта вида name@example.com. - **Ошибка в сайте.** Укажите адрес вроде example.com.ua или оставьте поле пустым. - **Ошибка в зонах.** Отметьте хотя бы одну зону из списка или «Все». --- # Подключение EPP в кабинете реселлера URL: https://zrazu.com/ru/docs/resellers-epp/ Раздел «Реселлер» → «Подключение EPP» в [кабинете](https://vse.zrazu.com/reseller/): здесь ваш биллинг соединяется с ZRAZU. Логины, пароли, адреса IP, сертификат и предохранители видят и меняют владелец, администратор и техник организации. Пароль боевого логина задаёт только владелец или администратор. Раздел появляется после договора. Как его получить: [как стать реселлером](https://zrazu.com/ru/docs/resellers-program.md). ## Адреса - **Песочница:** `epp-test.zrazu.com`, порт 1700. Тестовый баланс, деньги не списываются. - **Боевой сервер:** `epp.zrazu.com`, порт 700. Соединение защищено TLS 1.2 или новее. Лимиты одновременных сессий и команд в минуту кабинет показывает в самом разделе. ## Шаг 1. Получите логин песочницы Логин песочницы вы берёте сами: один на реселлера. 1. Найдите блок «Песочница epp-test». 2. Придумайте логин: 3–16 знаков, латиница, цифры, дефис и подчёркивание; первой должна быть буква. 3. Укажите адреса IP, с которых ваш биллинг будет ходить в песочницу: от 1 до 20, по одному в строке или через запятую. 4. Нажмите «Получить логин песочницы». 5. Сразу задайте логину пароль (шаг 2). Боевой логин и профиль ответов заводит менеджер после проверки в песочнице. ## Шаг 2. Задайте пароль Пароль задаёте вы. Мы его не видим и не можем показать, только сбросить по вашей просьбе. 1. В таблице «Логины EPP» найдите свой логин и нажмите «Задать пароль». 2. Введите пароль дважды или нажмите «Сгенерировать». 3. Если пароль сгенерирован, скопируйте его в модуль биллинга до того, как закроете окно: потом мы его показать не сможем. 4. Нажмите «Сохранить пароль». Требования: 16–64 знака, латиница, цифры и знаки препинания без пробелов; минимум три вида из четырёх (строчные буквы, заглавные буквы, цифры, знаки); логин в пароле не допускается. 16 знаков подходит всем модулям, а профиль rfc не принимает больше. Новый пароль заменяет старый сразу. Биллинг, в котором вы ещё не обновили настройки, потеряет доступ к логину. Сначала подготовьте настройки модуля, потом подтверждайте. ## Шаг 3. Адреса IP и сертификат Адрес IP из белого списка обязателен: с адреса, которого нет в списке, соединение закрывается. Добавьте исходящий адрес сервера вашего биллинга к каждому логину: кнопка «Настроить» в таблице логинов. Можно добавить публичный адрес IPv4 или IPv6, либо сеть не шире /24 (для IPv6 /64). Клиентский сертификат по желанию. Создайте ключ и сертификат у себя и загрузите только сертификат: закрытый ключ остаётся у вас. Сервер сверяет отпечаток сертификата при входе. Для пространств имён Hostmaster сертификат обязателен. Каждое изменение адресов или сертификата закрывает открытые сессии этого логина и приходит письмом владельцам и администраторам. ## Предохранители - **Массовые действия.** Если кодов переноса, смен NS и владельцев за час или сутки больше порога, следующие команды не отклоняются, а ждут вашего подтверждения в блоке «Ожидают подтверждения» вверху раздела. Подтвердить можно только с двухфакторной аутентификацией, отказать можно сразу. Если не решить, команда сама снимается через несколько часов, а итог биллинг получит в poll. - **Защита от угона логина.** Смена владельца под замком контактов, снятие замка или код переноса в течение 72 часов после смены владельца выполняются только с вашим подтверждением. - **Ежедневная сводка.** Сколько кодов переноса, смен NS и владельцев выполнено за день. - **«Отозвать доступ».** Кнопка в разделе: все сессии закрываются, пароли всех логинов заменяются. Биллинг не будет работать с ZRAZU, пока вы не зададите новые пароли. Адреса IP и сертификаты остаются. ## Инструкция EPP и перенос портфеля - [Инструкция EPP](https://vse.zrazu.com/reseller/manual/): полная партнёрская инструкция с командами, кодами ответов, песочницей и безопасностью. Она на украинском, а кабинет показывает её в рамке страницы. Видят её те же роли, что и раздел «Подключение EPP». - [Перенос портфеля](https://vse.zrazu.com/reseller/import/): домены от другого поставщика переносятся пачкой «домен ; код» по оптовому прайсу. Без кода перенести домен нельзя. Для WHMCS есть готовые модули: [модули для WHMCS](https://zrazu.com/ru/docs/resellers-whmcs.md). ## Если не получилось - **Соединение закрывается с кодом 2501.** Адреса вашего сервера нет в белом списке логина. Добавьте его в «Настроить». - **«Логин … уже занят — выберите другое название».** Придумайте другой логин. - **«Логин песочницы у вас уже есть — он один на реселлера».** Задайте пароль существующему логину или измените его адреса IP. - **«Укажите от 1 до 20 публичных адресов IP».** Приватные и некорректные адреса не принимаются. - **«Пароли не совпадают» или «Пароль должен быть от 16 до 64 знаков».** Проверьте оба поля. - **«Файл не принят: он слишком большой для сертификата».** Загружайте сам сертификат (BEGIN CERTIFICATE), а не цепочку или архив. - **Раздел не открывается или пуст.** Его видят только владелец, администратор и техник организации-реселлера. Если вы реселлер и доступа нет, напишите менеджеру. --- # Прайс реселлера в кабинете URL: https://zrazu.com/ru/docs/resellers-prices/ Прайс реселлера показывает вашу оптовую цену рядом с розничной ценой витрины ZRAZU: отдельно для доменов и для SSL. Это та же цена, по которой работают корзина в кабинете и ваш модуль. Конкретные суммы в документации не приводим: они зависят от зоны, объёма и вашего договора. Общие цены витрины: [https://zrazu.com/prices/](https://zrazu.com/prices/). ## Где найти [Кабинет](https://vse.zrazu.com/reseller/prices/) → «Реселлер» → «Прайс». Прайс видят владелец, администратор и техник организации-реселлера. Из раздела «Подключение EPP» сюда ведёт кнопка «Открыть прайс». Прайс всегда «на сегодня»: если зону или сертификат добавили или убрали, либо изменилась цена, список обновляется сам. Об изменении прайса мы предупреждаем за 30 дней. Исключение: изменения цены реестра и курса, они действуют в день вступления в силу. ## Вкладка «Домены» 1. Откройте вкладку «Домены». 2. Если зон много, воспользуйтесь полем «Найти зону». 3. Для каждой зоны и операции две колонки: «Опт» (ваша цена) и «Розница» (цена витрины для гостя). Как читать таблицу: - Цена указана за 1 год. Несколько лет регистрации или продления стоят кратно. Перенос и восстановление всегда на 1 год. - Прочерк «—» означает, что такой операции в этой зоне нет. Отметка «только перенос» означает, что зону можно только переносить. - Розница показана с НДС или без: как в вашем договоре. - Если в договоре индивидуальные условия, под прайсом будет надпись «Опт — по вашему индивидуальному прайсу». ### Валюта Оптовый прайс в долларах США. С баланса списывается гривна по курсу ПриватБанка (безналичный, продажа) на день операции. Курс и дата, на которую он действует, видны над таблицей. Гривневую сумму кабинет показывает под долларовой. Пока свежего курса нет, гривна не показывается, только доллар. Сумма резервируется в момент принятия команды. Если реестр отказал, резерв возвращается на баланс. ## Вкладка «SSL-сертификаты» Сертификаты по брендам: опт, розница, а также время получения и проверки, тип (один домен, wildcard или несколько имён в одном сертификате). Цены в гривне за 1 год. Они те же, что в кабинете и в [модулях для WHMCS](https://zrazu.com/ru/docs/resellers-whmcs.md). Если SSL в вашем договоре ещё не подключён, оптовые цены действуют после подключения, а до того сертификаты покупаются по розничной цене. Чтобы подключить, напишите менеджеру. ## Если не получилось - **Страница пишет, что прайс видят владелец, администратор и техник.** У вашей роли нет доступа. Попросите коллегу с такой ролью или менеджера. - **«Такой зоны в прайсе нет».** Зоны пока нет в вашем прайсе или она написана с ошибкой. Точку в начале можно не вводить. - **«Зон в прайсе пока нет» или «Сертификатов в прайсе пока нет».** Напишите менеджеру. - **Нет гривневых сумм.** Свежего курса доллара ещё нет. Гривна появится, как только он появится. --- # Модули ZRAZU для WHMCS URL: https://zrazu.com/ru/docs/resellers-whmcs/ Для WHMCS у нас готовы два модуля. «ZRAZU Domains» продаёт домены через EPP (модуль регистратора). «ZRAZU SSL» продаёт сертификаты через API (серверный модуль). Их можно ставить вместе или по одному. Модули доступны реселлерам после договора: [как стать реселлером](https://zrazu.com/ru/docs/resellers-program.md). Всё ниже делается в разделе [«Реселлер»](https://vse.zrazu.com/reseller/) кабинета, его видят владелец, администратор и техник. ## Что понадобится - Действующий договор реселлера и логин песочницы EPP: [подключение EPP](https://zrazu.com/ru/docs/resellers-epp.md). - Доступ к серверу WHMCS и его исходящий адрес IP (его нужно добавить к логину). - Для SSL: SSL в вашем договоре. Если он ещё не подключён, напишите менеджеру. ## Шаг 1. Скачайте архив 1. В разделе «Реселлер» найдите блок «Модули WHMCS». 2. Выберите архив под свою версию: есть пакет для WHMCS 8 и новее (PHP 8.1+) и пакет для WHMCS 7.4–8.x на PHP 7.0–8.3. 3. Нажмите «Скачать» и сверьте контрольную сумму с той, что показана рядом. Архив закрытый: не публикуйте его и не передавайте третьим лицам. В нём оба модуля, их README, журнал изменений и инструкция EPP. Каждая загрузка записывается в журнал организации. ## Шаг 2. Модуль «ZRAZU Domains» 1. Распакуйте архив и скопируйте содержимое папки `zrazu-domains/` в корень WHMCS. 2. В WHMCS откройте «Система» → «Настройки» → «Регистраторы доменов» и активируйте «ZRAZU Domains». 3. Впишите адрес EPP, логин и пароль, включите тестовый режим. Адрес и логин берите из раздела «Подключение EPP». 4. Проверьте регистрацию, продление, перенос и удаление. Песочница отвечает на эти команды кодом 1001, а итог приходит в poll примерно через 30 секунд. 5. Когда проверка пройдена, в WHMCS на странице цен на домены выберите «ZRAZU Domains» для нужных зон и переключите модуль на боевой логин, который вам заведёт менеджер. ## Шаг 3. Модуль «ZRAZU SSL» Сначала проверьте его в песочнице. Там те же права и ответы, что и в рабочем режиме, но деньги тестовые, а сертификаты от недоверенного тестового центра. 1. Скопируйте содержимое папки `zrazu-ssl/` в корень WHMCS вместе с хуком `includes/hooks/zrazussl.php`. 2. В разделе «Реселлер» найдите блок «Тестовый ключ — песочница SSL». Укажите адреса сервера WHMCS и нажмите «Тестовый ключ». Скопируйте ключ сразу: больше мы его не покажем. 3. В WHMCS: «Серверы» → Add New Server, тип «ZRAZU SSL». Впишите адрес API песочницы (он указан в блоке «Инструкция по интеграции») и ключ в поле Password. Нажмите Test Connection. 4. Создайте товар типа Other, модуль «ZRAZU SSL», режим оплаты «По договору». 5. Пройдите проверки из README модуля, в том числе имена-триггеры отказов. ## Шаг 4. Боевой ключ для SSL 1. В блоке «SSL по договору и модуль WHMCS» укажите адреса сервера вашего WHMCS: по одному в строке, публичные IPv4 или IPv6, сеть не шире /24 и /64. 2. По желанию дайте ключу название и задайте дневной лимит трат в гривнах: сколько модуль может потратить с баланса за сутки. Сверх лимита заказы отклоняются с причиной. Изменить лимит можно новым ключом. 3. Нажмите «Выпустить ключ «Модуль WHMCS (SSL)»». 4. Скопируйте ключ и вставьте в настройки модуля, затем нажмите «Я скопировал(-а) ключ». Больше мы его не покажем. Все ключи потом видны в разделе «Ключи API». 5. В WHMCS добавьте второй сервер «ZRAZU SSL» с боевым адресом API и этим ключом. Ключ действует ограниченное время, работает только с адресов вашего сервера WHMCS, а выпуск сертификата требует второго фактора. Срок действия показан в кабинете. ## Другие биллинги Готовые модули есть для WHMCS. Другой биллинг подключается по EPP по инструкции: [подключение EPP](https://zrazu.com/ru/docs/resellers-epp.md). ## Если не получилось - **Соединение закрывается с кодом 2501.** Исходящего адреса вашего сервера WHMCS нет в белом списке логина EPP. Добавьте его в «Настроить» рядом с логином. - **Боевой адрес не принимает тестовый ключ.** Тестовый ключ работает только на адресе песочницы. Для боевого режима выпустите боевой ключ. - **Ключ потерян.** Показать его второй раз нельзя. Выпустите новый и замените в настройках модуля. - **Заказ отклонён из-за лимита.** Превышен дневной лимит трат ключа. Выпустите новый ключ с другим лимитом. - **Кабинет пишет «Архив ещё не собран — напишите менеджеру».** Напишите менеджеру через «Поддержку». - **Другой вопрос по модулю.** Посмотрите README в архиве, а если ответа там нет, напишите в «Поддержку». --- # Кабинет веб-студии URL: https://zrazu.com/ru/docs/resellers-studio/ Программа для веб-студий даёт один кабинет для доменов всех ваших клиентов: ступень по количеству доменов, список клиентов, выписка за месяц с разбивкой и перенос базы волнами. Вступление бесплатное, без договора и аванса. Это не то же самое, что программа реселлера. Реселлер продаёт домены из своего биллинга, а студия покупает в собственном кабинете для своих клиентов. Реселлерам: [как стать реселлером](https://zrazu.com/ru/docs/resellers-program.md). Условия программы для студий также есть на странице [https://zrazu.com/studios/](https://zrazu.com/studios/). ## Что получает студия - Инвентаризацию всех доменов клиентов: сроки, серверы имён, почта, SSL, что можно перенести уже сейчас. - DNS-хостинг для любых ваших зон, даже если домен зарегистрирован у другого регистратора. - Мониторинг доменов, которые уже у нас, без доплаты. - Скидку по количеству доменов под управлением на украинские зоны. На международные зоны (gTLD) скидки нет: там фиксированная наценка над ценой реестра. Чего нет: выплат деньгами за клиентов, хостинга (только домены, DNS и SSL), скидок сверх опубликованной сетки. ## Как вступить Вступает владелец или администратор организации. 1. Откройте [режим студии](https://vse.zrazu.com/agency/) в кабинете. Его видят участники организации с доступом к доменам. Также можно найти «Режим студии» в поиске команд кабинета. 2. Прочитайте «Условия» и нажмите «Вступить в программу». 3. После вступления в меню появится пункт «Студия». ## Разделы кабинета студии | Раздел | Что там | | --- | --- | | Обзор | Сколько доменов в ZRAZU, ваша ступень, сколько осталось до следующей, лестница ступеней | | Клиенты | Клиенты студии, их домены, ближайшее продление, отнесение доменов к клиентам | | Переносы | Волны переносов и состояние каждой | | Рефералы | Ваша реферальная ссылка и список тех, кто пришёл по ней | | Цены | Цены первого года по ступеням: витрина, затем ваша цена | | Выписка | Оплаты за месяц с разбивкой по клиентам | | Условия | Условия программы и как уйти | ## Ступень Ступень зависит от количества доменов под управлением (доменов, зарегистрированных в ZRAZU в организации студии), а не от оборота. Ступени: «База», «Студия», «Студия+», «Партнёр». Пороги и вашу текущую ступень показывает «Обзор». Пока идёт перенос базы, ступень по договорённости можно получить авансом по плану переноса. Размер скидки смотрите на странице [https://zrazu.com/studios/](https://zrazu.com/studios/). Условия программы там и в разделе «Условия» кабинета отмечены как предварительные. ## Клиенты и домены 1. Откройте «Клиенты», нажмите «Добавить клиента» и введите название клиента. 2. В блоке «Отнести домены к клиенту» введите домены, по одному в строке, выберите клиента и нажмите «Отнести». Чтобы снять отнесение, выберите «без клиента». 3. Клиент откроется отдельной страницей со списком доменов: дата окончания, автопродление. Клиентов и отнесение меняет владелец или администратор. Владельцем домена остаётся клиент (регистрант), студия управляет аккаунтом и платит. Чтобы передать домен клиенту в его собственный аккаунт, смените владельца на вкладке «Владелец» карточки домена. Смена владельца идёт с паузой 72 часа, а письма получают все контакты. Мы не отправляем вашим клиентам маркетинговых писем и не предлагаем им прямых условий. Служебные письма владельцу и контактам домена (код переноса, смена владельца, контактов или DNS, последнее предупреждение перед удалением) отправляем всегда: так домен защищён от кражи. ## Цены В разделе «Цены» видна регистрация на первый год по вашей ступени рядом с ценой витрины. Это то, что реально посчитает корзина. Цены в гривне, с НДС или без: это вы выбираете в корзине. ## Выписка за месяц 1. Откройте «Выписка» и укажите месяц в формате 2026-09. 2. Вы увидите оплаченные позиции по клиентам: сумму без НДС, НДС и итого. 3. Для перевыставления клиентам нажмите «Скачать CSV для перевыставления». Выписку видит роль с доступом к деньгам: бухгалтер, администратор или владелец. ## Перенос базы 1. В «Трансфере» проверьте домены: какие можно перенести сейчас, какие заблокированы и почему. 2. Соберите корзину с кодами переноса и запустите переносы. 3. В «Переносах» следите за волнами: волна — это один заказ переносов. Частичный успех нормален: за отказ деньги возвращаются на баланс, волна идёт дальше. DNS и регистрация переносятся отдельно, поэтому сайты и почта не падают, пока ждут кода переноса. Ничего не переключаем без вас. ## Реферальная ссылка В «Рефералах» есть ваша ссылка для клиентов, которые покупают сами. Кто зарегистрируется по ней, появится в списке с датой, без названия: это клиент, пока он сам не позовёт вас в команду. Выплат деньгами за приглашённых нет. ## Как уйти из программы Код переноса каждого домена отправляем письмом его владельцу, а не на экран: так мы защищаем от угона. Массовая выдача кодов всех доменов идёт через «Поддержку», после проверки, что запрос от владельца организации. В разделе «Условия» есть кнопка «Написать в поддержку». ## Если не получилось - **Пункта «Студия» в меню нет.** Вы ещё не вступили в программу, либо у вашей роли нет доступа к доменам. Вступить может владелец или администратор. - **Нельзя добавить клиента или отнести домены.** Это делают только владелец или администратор. - **«ваша роль не позволяет это действие».** Попросите владельца или администратора организации. - **Выписка не открывается.** Её видят бухгалтер, администратор и владелец. - **«Месяц — в формате 2026-09».** Введите год, дефис и месяц двумя цифрами. - **Раздел «Цены» не открывается, пишет о слишком многих запросах.** Подождите минуту и обновите страницу.