SUPPORT-8592. Обновлены README и Инструкция по установке
This commit is contained in:
parent
bb8dac32b9
commit
3e15adb265
2 changed files with 60 additions and 6 deletions
38
README.md
38
README.md
|
|
@ -1,6 +1,10 @@
|
||||||
## Краткое описание
|
## Краткое описание
|
||||||
|
|
||||||
Модуль предназначен для подписи данных.
|
В модуле реализованы следующие функции:
|
||||||
|
- подпись данных
|
||||||
|
- проверка подписи маркера доступа
|
||||||
|
|
||||||
|
### Подпись данных
|
||||||
|
|
||||||
Приложение принимает POST-запрос по протоколу FastCGI (Content-Type: text/plain).
|
Приложение принимает POST-запрос по протоколу FastCGI (Content-Type: text/plain).
|
||||||
Подписывает строку, полученную в теле запроса.
|
Подписывает строку, полученную в теле запроса.
|
||||||
|
|
@ -28,6 +32,35 @@ $ curl -v http://127.0.0.1:8080/sign -H "Content-Type: text/plain" -d "test"
|
||||||
urlSafeBase64_of_signed_string_test
|
urlSafeBase64_of_signed_string_test
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Проверка подписи маркера доступа
|
||||||
|
|
||||||
|
Приложение принимает POST-запрос по протоколу FastCGI (Content-Type: text/plain).
|
||||||
|
Проверяет подпись маркера доступа, полученного в теле запроса.
|
||||||
|
В ответе возвращает один из следующих статус-кодов:
|
||||||
|
- 200 OK - подпись валидна
|
||||||
|
- 401 Unauthorized - подпись невалидна (в теле ответа возвращается код ошибки от криптопровайдера)
|
||||||
|
- 500 Internal Server Error - внутренняя ошибка сервера
|
||||||
|
|
||||||
|
Пример выполнения запроса:
|
||||||
|
```
|
||||||
|
$ curl -v http://127.0.0.1:8080/verify -H "Content-Type: text/plain" -d "some_valid_access_token"
|
||||||
|
* 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: Wed, 16 Oct 2024 09:55:46 GMT
|
||||||
|
< Transfer-Encoding: chunked
|
||||||
|
< Connection: keep-alive
|
||||||
|
<
|
||||||
|
```
|
||||||
|
|
||||||
## Сборка из исходников
|
## Сборка из исходников
|
||||||
|
|
||||||
Инструкции по сборке из исходников см. "Инструкция по сборке.md"
|
Инструкции по сборке из исходников см. "Инструкция по сборке.md"
|
||||||
|
|
@ -60,3 +93,6 @@ location = /sign *\# значение по умолчанию: /sign, должн
|
||||||
signer_subject = signer@example.ru *\# email, ИНН, СНИЛС или любая другая строка из свойства контейнера «Субъект»*
|
signer_subject = signer@example.ru *\# email, ИНН, СНИЛС или любая другая строка из свойства контейнера «Субъект»*
|
||||||
pin = \*\*\*\* *\# пароль от контейнера*
|
pin = \*\*\*\* *\# пароль от контейнера*
|
||||||
|
|
||||||
|
- В секции **\[verify\]** задать настройки проверки подписи маркера доступа:
|
||||||
|
location = /verify *\# значение по умолчанию: /verify, должно совпадать со значением в nginx.conf*
|
||||||
|
esia_cert_thumbprint = sha1thumbprint *\# SHA1 отпечаток сертификата ЕСИА*
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,11 @@ cd -
|
||||||
/opt/cprocsp/sbin/amd64/cpconfig -license -set "Номер"
|
/opt/cprocsp/sbin/amd64/cpconfig -license -set "Номер"
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Запросить у руководителя проекта реестра повесток контейнер с ключом ИС, зарегистрированной в ЕСИА.
|
### Установка ключевой пары ИС, зарегистрированной в ЕСИА
|
||||||
|
|
||||||
5. Установить полученную ключевую пару для пользователя, от которого запускается модуль подписания (команды выполняются от имени **ervu**).
|
1. Запросить у руководителя проекта реестра повесток контейнер с ключом ИС, зарегистрированной в ЕСИА.
|
||||||
|
|
||||||
|
2. Установить полученную ключевую пару для пользователя, от которого запускается модуль подписания (команды выполняются от имени **ervu**).
|
||||||
Внимание! В следующих командах необходимо заменить ***key_cont.000*** на название контейнера, полученного на предыдущем шаге.
|
Внимание! В следующих командах необходимо заменить ***key_cont.000*** на название контейнера, полученного на предыдущем шаге.
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
|
|
@ -38,22 +40,38 @@ chown -R ervu:ervu /var/opt/cprocsp/keys/ervu/key_cont.000/
|
||||||
/opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov
|
/opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov
|
||||||
```
|
```
|
||||||
|
|
||||||
6. Получить перечень сертификатов:
|
3. Получить перечень сертификатов:
|
||||||
``` bash
|
``` bash
|
||||||
sudo -u ervu /opt/cprocsp/bin/amd64/certmgr -list
|
sudo -u ervu /opt/cprocsp/bin/amd64/certmgr -list
|
||||||
```
|
```
|
||||||
|
|
||||||
Получить следующие значения:
|
Получить следующие значения:
|
||||||
- Поле "Субъект": любая подстрока из этого поля является signer_subject (нужно будет указать в конфигурационном файле модуля подписания)
|
- Поле "Субъект": любая подстрока из этого поля является signer_subject (нужно будет указать в конфигурационном файле модуля подписания)
|
||||||
- Поле "Ссылка на ключ": убедиться, что значение равно "Есть" (иначе проверьте выполнение предыдущих шагов)
|
- Поле "Ссылка на ключ": убедиться, что значение равно "Есть" (иначе необходимо проверить выполнение предыдущих шагов)
|
||||||
|
|
||||||
7. Сделать тестовую подпись с помощью установленного контейнера и полученных значений \<signer_subject\> и \<pin\>:
|
4. (опционально) Сделать тестовую подпись с помощью установленного контейнера и полученных значений \<signer_subject\> и \<pin\>:
|
||||||
``` bash
|
``` bash
|
||||||
touch test.txt
|
touch test.txt
|
||||||
sudo -u ervu /opt/cprocsp/bin/amd64/cryptcp -signf -dn <signer_subject> ./test.txt
|
sudo -u ervu /opt/cprocsp/bin/amd64/cryptcp -signf -dn <signer_subject> ./test.txt
|
||||||
rm -f test.txt test.txt.sgn
|
rm -f test.txt test.txt.sgn
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Установка сертификата ЕСИА
|
||||||
|
|
||||||
|
1. Скачать сертификаты тестовой и продуктивной сред ЕСИА, используемые для формирования электронных подписей ответов как поставщика, по ссылке: https://esia.gosuslugi.ru/public/esia.zip
|
||||||
|
|
||||||
|
2. Из списка сертификатов выбрать тот, который подходит под конфигурацию стенда (в зависимости от алгоритма подписи и от того, является ли среда тестовой или продуктивной).
|
||||||
|
|
||||||
|
3. Установить выбранный сертификат для пользователя, от которого запускается модуль подписания (команды выполняются от имени **ervu**).
|
||||||
|
``` bash
|
||||||
|
/opt/cprocsp/bin/amd64/certmgr -install -file '<esia_cert>.cer'
|
||||||
|
```
|
||||||
|
|
||||||
|
Результатом команды будет список полей сертификата. Из него необходимо получить следующие значения:
|
||||||
|
- Поле "SHA1 отпечаток": это значение нужно будет указать в конфигурационном файле модуля подписания в качестве настройки \<esia_cert_thumbprint\>.
|
||||||
|
- Поле "Алгоритм подписи": проверить, что значение совпадает с настройками ИС в ЕСИА.
|
||||||
|
- Поле "Истекает": проверить, что срок действия сертификата не истёк.
|
||||||
|
|
||||||
### Установка и настройка nginx
|
### Установка и настройка nginx
|
||||||
|
|
||||||
Дальнейшие шаги выполняются от имени root:
|
Дальнейшие шаги выполняются от имени root:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue