You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.7 KiB

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.