SSL: автоматическое обновление
Ссылка на сертификат — справка для разработчиков
Адреса, форматы, коды ответа, условные запросы, лимиты и правила безопасности личной ссылки на сертификат — для своих интеграций и ИИ-агентов.
Личная ссылка отдаёт действующий сертификат подписки без входа в кабинет — для скриптов, задач по расписанию и собственных интеграций. Создаётся в кабинете: карточка сертификата → «Установка» → «Ссылка для сервера».
Адреса
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: предыдущую версию не отдаём, потому что центр сертификации мог отозвать её при замене. Когда появляется следующая часть подписки, по той же ссылке начинает отдаваться она — ссылку менять не нужно.
Если сертификат перевыпускали с новым ключом, ссылка отдаст сертификат на новый ключ. Поэтому перед установкой сверяйте открытый ключ сертификата со своим закрытым ключом — так делают все скрипты в наших инструкциях:
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, пока сертификат тот же:
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-full.txt (все страницы). Каждая страница документации есть и в Markdown — добавьте .md к адресу без косой черты в конце.