SUPPORT-8455. Реализован модуль подписания
This commit is contained in:
commit
4243ebae5e
42 changed files with 4889 additions and 0 deletions
106
README.md
Normal file
106
README.md
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
## Краткое описание
|
||||
|
||||
Модуль предназначен для подписи данных.
|
||||
|
||||
Приложение принимает POST-запрос по протоколу FastCGI (Content-Type: text/plain).
|
||||
Подписывает строку, полученную в теле запроса.
|
||||
В ответе возвращает подпись в формате urlSafeBase64 (Content-Type: text/plain).
|
||||
|
||||
Пример выполнения запроса:
|
||||
```
|
||||
$ curl -v http://127.0.0.1:8080/sign -H "Content-Type: text/plain" -d "test"
|
||||
* Trying 127.0.0.1:8080...
|
||||
* Connected to 127.0.0.1 (127.0.0.1) port 8080
|
||||
> POST /sign HTTP/1.1
|
||||
> Host: 127.0.0.1:8080
|
||||
> User-Agent: curl/8.4.0
|
||||
> Accept: */*
|
||||
> Content-Type: text/plain
|
||||
> Content-Length: 4
|
||||
>
|
||||
< HTTP/1.1 200 OK
|
||||
< Server: nginx/1.24.0
|
||||
< Date: Fri, 16 Aug 2024 07:33:13 GMT
|
||||
< Content-Type: text/plain
|
||||
< Transfer-Encoding: chunked
|
||||
< Connection: keep-alive
|
||||
<
|
||||
urlSafeBase64_of_signed_string_test
|
||||
```
|
||||
|
||||
## Сборка и установка
|
||||
|
||||
### Подготовка
|
||||
|
||||
1. Установить КриптоПро.
|
||||
|
||||
2. Установить сертификат для пользователя, под которым будет запускаться данное приложение.
|
||||
|
||||
3. Установить nginx.
|
||||
|
||||
4. В настройках nginx добавить перенаправление на данное приложение:
|
||||
```
|
||||
location = /sign {
|
||||
fastcgi_pass localhost:9009;
|
||||
include fastcgi_params;
|
||||
}
|
||||
```
|
||||
|
||||
### Cборка из исходников
|
||||
|
||||
Для **сборки** необходимы следующие библиотеки:
|
||||
- glib2-devel
|
||||
- libfcgi-devel
|
||||
- lsb-cprocsp-base
|
||||
- lsb-cprocsp-rdr-64
|
||||
- lsb-cprocsp-kc1-64
|
||||
- lsb-cprocsp-capilite-64
|
||||
- cprocsp-curl-64
|
||||
- lsb-cprocsp-ca-certs
|
||||
- cprocsp-pki-cades-64
|
||||
- lsb-cprocsp-devel
|
||||
|
||||
Для **установки** необходимы следующие библиотеки:
|
||||
- glib2
|
||||
- libfcgi
|
||||
- lsb-cprocsp-base
|
||||
- lsb-cprocsp-rdr-64
|
||||
- lsb-cprocsp-kc1-64
|
||||
- lsb-cprocsp-capilite-64
|
||||
- cprocsp-curl-64
|
||||
- lsb-cprocsp-ca-certs
|
||||
- cprocsp-pki-cades-64
|
||||
|
||||
Для сборки и установки приложения из исходников, выполните следующие команды:
|
||||
```
|
||||
$ mkdir .build && cd .build
|
||||
$ cmake ..
|
||||
$ make -j$(nproc)
|
||||
```
|
||||
|
||||
Чтобы задать произвольное имя конфигурационного файла, при сборке приложения необходимо задать параметр CONFIG_NAME.
|
||||
Пример:
|
||||
```
|
||||
cmake -DCONFIG_NAME=/opt/ervu-esia-module.conf
|
||||
```
|
||||
|
||||
По умолчанию, имя конфигурационного файла /etc/ervu-esia-module.conf.
|
||||
|
||||
### Настройка
|
||||
|
||||
Приложение настраивается в конфигурационном файле, заданном на этапе сборки (по умолчанию, /etc/ervu-esia-module.conf).
|
||||
|
||||
- В секции **\[main\]** задать количество воркеров
|
||||
worker_processes = 10 *\# значение по умолчанию: 10*
|
||||
|
||||
- В секции **\[fcgi\]** задать настройки fcgi-сервера:
|
||||
fcgi_listen_port = 9009 *\# значение по умолчанию: 9009, должно совпадать со значением в nginx.conf*
|
||||
fcgi_listen_host = 127.0.0.1 *\# значение по умолчанию: 127.0.0.1, должно совпадать со значением в nginx.conf*
|
||||
fcgi_thread_pool_size = 1 *\# значение по умолчанию: 1*
|
||||
|
||||
- В секции **\[sign\]** задать настройки модуля подписания:
|
||||
location = /sign *\# значение по умолчанию: /sign, должно совпадать со значением в nginx.conf*
|
||||
cp_file = libcapi20.so *\# путь до файла библиотеки криптопровайдера*
|
||||
signer_subject = signer@example.ru *\# email, ИНН, СНИЛС или любая другая строка из свойства контейнера «Субъект»*
|
||||
pin = \*\*\*\* *\# пароль от контейнера*
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue