# API Документация для CertCenter (POST-запросы, поддержка JSON) Базовый адрес: `http://127.0.0.1:4567` --- ## 1. Получение токена ``` curl -X POST http://127.0.0.1:4567/api/v1/login \ -H "Content-Type: application/json" \ -d '{"login":"admin","password":"admin"}' ``` > **Ответ** > ``` > { "error": null, "content": { "token": "" } } > ``` > Сохраняйте значение `token` для последующих запросов. --- ## 2. Список серверных сертификатов ``` curl -X POST http://127.0.0.1:4567/api/v1/servers \ -H "Content-Type: application/json" \ -d '{"token":""}' ``` --- ## 3. Список клиентских сертификатов ``` curl -X POST http://127.0.0.1:4567/api/v1/clients \ -H "Content-Type: application/json" \ -d '{"token":""}' ``` --- ## 4. Детальная информация о сертификате ``` curl -X POST http://127.0.0.1:4567/api/v1/certinfo/123 \ -H "Content-Type: application/json" \ -d '{"token":""}' ``` --- ## 5. Детальная информация о корневом сертификате центра сертификации ``` curl -X POST http://127.0.0.1:4567/api/v1/root \ -H "Content-Type: application/json" \ -d '{"token":""}' ``` --- ## 6. Отзыв сертификата ``` curl -X POST http://127.0.0.1:4567/api/v1/revoke/123 \ -H "Content-Type: application/json" \ -d '{"token":""}' ``` --- ## 7. Добавление клиентского сертификата ``` curl -X POST http://127.0.0.1:4567/api/v1/addclient \ -H "Content-Type: application/json" \ -d '{"token":"","server_domain":"example.com","client":"client1"}' ``` --- ## 8. Добавление серверного сертификата ``` curl -X POST http://127.0.0.1:4567/api/v1/addserver \ -H "Content-Type: application/json" \ -d '{"token":"","domains":"example.com,example.org","validity_days":365}' ``` --- ## 9. Список пользователей (admin) ``` curl -X POST http://127.0.0.1:4567/api/v1/ulist \ -H "Content-Type: application/json" \ -d '{"token":""}' ``` --- ## 10. Удаление пользователя ``` curl -X POST http://127.0.0.1:4567/api/v1/deleteuser/42 \ -H "Content-Type: application/json" \ -d '{"token":""}' ``` --- ## 11. Создание пользователя ``` curl -X POST http://127.0.0.1:4567/api/v1/adduser \ -H "Content-Type: application/json" \ -d '{"token":"","login":"jane","password":"secret","email":"jane@example.com","role":1}' ``` --- ## 12. Редактирование пользователя ``` curl -X POST http://127.0.0.1:4567/api/v1/edituser/42 \ -H "Content-Type: application/json" \ -d '{"token":"","login":"jane","password":"newpass","role":2}' ``` --- ## 13. Установка и подготовка структуры центра сертификации ``` curl -X POST http://127.0.0.1:4567/api/v1/install \ -H "Content-Type: application/json" \ -d '{"cert-path":"/tmp","org-name":"neworg","common-name":"name","cert-password":"pass","country-name": "RU", "validity-days":"3650"}' ``` --- ## 14. Обработка ошибок Если сервер возвращает статус **400**, то это ошибка синтаксиса JSON: ``` { "error": "Invalid JSON", "content": null } ``` Если токен недействителен или истёк, будет: ``` { "error": "Токен устарел", "content": null } ``` При других ошибках сервер выдаёт `{ "error": "...", "content": "..." }` в формате JSON.