Files
cecemaut/docs/API.md
Alexey Berezhok c2b717bea6 Initial commit
2026-02-19 22:19:55 +03:00

158 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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": "<JWT>" } }
> ```
> Сохраняйте значение `token` для последующих запросов.
---
## 2. Список серверных сертификатов
```
curl -X POST http://127.0.0.1:4567/api/v1/servers \
-H "Content-Type: application/json" \
-d '{"token":"<JWT>"}'
```
---
## 3. Список клиентских сертификатов
```
curl -X POST http://127.0.0.1:4567/api/v1/clients \
-H "Content-Type: application/json" \
-d '{"token":"<JWT>"}'
```
---
## 4. Детальная информация о сертификате
```
curl -X POST http://127.0.0.1:4567/api/v1/certinfo/123 \
-H "Content-Type: application/json" \
-d '{"token":"<JWT>"}'
```
---
## 5. Детальная информация о корневом сертификате центра сертификации
```
curl -X POST http://127.0.0.1:4567/api/v1/root \
-H "Content-Type: application/json" \
-d '{"token":"<JWT>"}'
```
---
## 6. Отзыв сертификата
```
curl -X POST http://127.0.0.1:4567/api/v1/revoke/123 \
-H "Content-Type: application/json" \
-d '{"token":"<JWT>"}'
```
---
## 7. Добавление клиентского сертификата
```
curl -X POST http://127.0.0.1:4567/api/v1/addclient \
-H "Content-Type: application/json" \
-d '{"token":"<JWT>","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":"<JWT>","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":"<JWT>"}'
```
---
## 10. Удаление пользователя
```
curl -X POST http://127.0.0.1:4567/api/v1/deleteuser/42 \
-H "Content-Type: application/json" \
-d '{"token":"<JWT>"}'
```
---
## 11. Создание пользователя
```
curl -X POST http://127.0.0.1:4567/api/v1/adduser \
-H "Content-Type: application/json" \
-d '{"token":"<JWT>","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":"<JWT>","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.