SUPPORT-9333. Проверка подписанного сообщения, содержащего отсоединённую подпись
This commit is contained in:
parent
9d2f2be25a
commit
ac08303c90
34 changed files with 2403 additions and 114 deletions
43
README.md
43
README.md
|
|
@ -3,6 +3,7 @@
|
|||
В модуле реализованы следующие функции:
|
||||
- подпись данных
|
||||
- проверка подписи маркера доступа
|
||||
- проверка подписанного сообщения, содержащего отсоединённую (detached) подпись
|
||||
|
||||
## Подпись данных
|
||||
|
||||
|
|
@ -41,7 +42,7 @@ $ /opt/cprocsp/bin/amd64/curl -v http://127.0.0.1/sign -H "Content-Type: text/pl
|
|||
Приложение принимает POST-запрос по протоколу FastCGI (Content-Type: text/plain).
|
||||
Проверяет подпись маркера доступа, полученного в теле запроса.
|
||||
В ответе возвращает один из следующих статус-кодов:
|
||||
- `200 OK`- подпись валидна
|
||||
- `200 OK` - подпись валидна
|
||||
- `401 Unauthorized` - подпись невалидна (в теле ответа возвращается код ошибки от криптопровайдера)
|
||||
- `500 Internal Server Error` - внутренняя ошибка сервера (подробнее см. в `Обработка ошибок`)
|
||||
|
||||
|
|
@ -65,6 +66,43 @@ $ /opt/cprocsp/bin/amd64/curl -v http://127.0.0.1/verify -H "Content-Type: text/
|
|||
<
|
||||
```
|
||||
|
||||
### Проверка подписанного сообщения, содержащего отсоединённую подпись
|
||||
|
||||
Приложение принимает POST-запрос по протоколу FastCGI (Content-Type: multipart/form-data).
|
||||
Проверяет подписанное сообщение, содержащее отсоединённую (detached) подпись.
|
||||
В ответе возвращает один из следующих статус-кодов:
|
||||
- `200 OK` - подпись валидна, в ответе возвращает поля "Subject" и "Issuer" из свойств сертификата, которым было подписано сообщение
|
||||
- `401 Unauthorized` - подпись невалидна (в теле ответа возвращается код ошибки от криптопровайдера)
|
||||
- `500 Internal Server Error` - внутренняя ошибка сервера (подробнее см. в `Обработка ошибок`)
|
||||
|
||||
Пример выполнения запроса:
|
||||
```
|
||||
$ /opt/cprocsp/bin/amd64/curl -v http://127.0.0.1/msg/verify_detached \
|
||||
-F "data=@data.csv;type=application/octet-stream" \
|
||||
-F "sign=@data.csv.sig;type=application/octet-stream"
|
||||
* Trying 127.0.0.1:80...
|
||||
* TCP_NODELAY set
|
||||
* Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)
|
||||
> POST /msg/verify_detached HTTP/1.1
|
||||
> Host: 127.0.0.1
|
||||
> User-Agent: curl/7.65.3-DEV
|
||||
> Accept: */*
|
||||
> Content-Length: 2770
|
||||
> Content-Type: multipart/form-data; boundary=------------------------d4c9f889765b7342
|
||||
>
|
||||
< HTTP/1.1 200 OK
|
||||
< Server: nginx/1.24.0
|
||||
< Date: Tue, 26 Aug 2025 08:58:18 GMT
|
||||
< Content-Type: application/json
|
||||
< Transfer-Encoding: chunked
|
||||
< Connection: keep-alive
|
||||
<
|
||||
{
|
||||
"signer_subject":"C=RU, O=Организация, OU=Отдел тестирования отсоединенной подписи, CN=Фамилия Имя Отчество",
|
||||
"issuer_name": "C=RU, O=УЦ, CN=GOST CA Root"
|
||||
}
|
||||
```
|
||||
|
||||
## Обработка ошибок
|
||||
|
||||
В случае ошибки сервер возвращает ответ со статус-кодом `500 Internal Server Error` и телом в формате JSON, содержащим поле `error_code`.
|
||||
|
|
@ -121,6 +159,9 @@ sign_cert_password = \*\*\*\* *\# пароль от контейнера*
|
|||
location = /verify *\# значение по умолчанию: /verify*
|
||||
esia_cert_thumbprint = sha1_thumbprint_of_esia_cert0,sha1_thumbprint_of_esia_cert1 *\# список SHA1 отпечатков сертификатов ЕСИА, указанных через запятую (без пробелов)*
|
||||
|
||||
- В секции **\[verify_detached\]** задать настройки проверки подписанного сообщения, содержащего отсоединённую подпись:
|
||||
location = /msg/verify_detached *\# значение по умолчанию: /msg/verify_detached*
|
||||
|
||||
## Логирование времени обработки запросов
|
||||
|
||||
***Для включения*** логирования времени обработки запросов необходимо задать переменную окружения SIGN_LOG_TIME:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue