2024-09-12 13:35:57 +03:00
|
|
|
|
## Установка модуля подписания
|
|
|
|
|
|
|
|
|
|
|
|
### Создание пользователя ervu
|
|
|
|
|
|
|
|
|
|
|
|
1. Создать пользователя ervu. Для этого выполнить команды от имени root:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
adduser --system --no-create-home --user-group ervu
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Установка и настройка КриптоПро
|
|
|
|
|
|
|
|
|
|
|
|
1. Скачать КриптоПро 5 R3 КС3.
|
|
|
|
|
|
|
|
|
|
|
|
2. Установить КриптоПро. Для этого выполнить команды от имени root:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
tar -zxvf linux-amd64.tgz && cd ./linux-amd64/
|
|
|
|
|
|
./install.sh
|
|
|
|
|
|
apt-get install ./cprocsp-pki-cades-64-2.0.14815-1.amd64.rpm
|
|
|
|
|
|
cd -
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
3. Активировать лицензию:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
/opt/cprocsp/sbin/amd64/cpconfig -license -set "Номер"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2024-09-26 14:02:20 +03:00
|
|
|
|
4. Запросить у руководителя проекта реестра повесток контейнер с ключом ИС, зарегистрированной в ЕСИА.
|
|
|
|
|
|
|
|
|
|
|
|
5. Установить полученную ключевую пару для пользователя, от которого запускается модуль подписания (команды выполняются от имени **ervu**).
|
|
|
|
|
|
Внимание! В следующих командах необходимо заменить ***key_cont.000*** на название контейнера, полученного на предыдущем шаге.
|
|
|
|
|
|
|
2024-09-12 13:35:57 +03:00
|
|
|
|
``` bash
|
|
|
|
|
|
mkdir /var/opt/cprocsp/keys/ervu/
|
|
|
|
|
|
cp -r key_cont.000/ /var/opt/cprocsp/keys/ervu/
|
|
|
|
|
|
chmod 700 /var/opt/cprocsp/keys/ervu/key_cont.000
|
|
|
|
|
|
chmod 600 /var/opt/cprocsp/keys/ervu/key_cont.000/*
|
|
|
|
|
|
chown -R ervu:ervu /var/opt/cprocsp/keys/ervu/key_cont.000/
|
|
|
|
|
|
/opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2024-10-10 10:48:08 +03:00
|
|
|
|
6. Получить перечень сертификатов:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
sudo -u ervu /opt/cprocsp/bin/amd64/certmgr -list
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Получить следующие значения:
|
|
|
|
|
|
- Поле "Субъект": любая подстрока из этого поля является signer_subject (нужно будет указать в конфигурационном файле модуля подписания)
|
|
|
|
|
|
- Поле "Ссылка на ключ": убедиться, что значение равно "Есть" (иначе проверьте выполнение предыдущих шагов)
|
|
|
|
|
|
|
|
|
|
|
|
7. Сделать тестовую подпись с помощью установленного контейнера и полученных значений \<signer_subject\> и \<pin\>:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
touch test.txt
|
|
|
|
|
|
sudo -u ervu /opt/cprocsp/bin/amd64/cryptcp -signf -dn <signer_subject> ./test.txt
|
|
|
|
|
|
rm -f test.txt test.txt.sgn
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2024-09-12 13:35:57 +03:00
|
|
|
|
### Установка и настройка nginx
|
|
|
|
|
|
|
|
|
|
|
|
Дальнейшие шаги выполняются от имени root:
|
|
|
|
|
|
|
|
|
|
|
|
1. Установить nginx:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
apt-get install nginx
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. Скопировать файл настроек для nginx:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
cp conf/nginx.conf /etc/nginx/
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
3. Запустить nginx:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
systemctl start nginx
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Установка и настройка ervu-sign-module
|
|
|
|
|
|
|
|
|
|
|
|
1. Установить зависимости для запуска приложения:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
apt-get install glib2 libfcgi
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. Скопировать исполняемый файл:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
mkdir /opt/ervu-sign-module/
|
|
|
|
|
|
cp ./ervu-sign-module /opt/ervu-sign-module/
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
3. Скопировать файл настроек:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
cp conf/ervu-sign-module.conf /etc/
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
4. Скопировать юнит:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
cp ./ervu-sign-module.service /etc/systemd/system/
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
4. Включить запуск службы при загрузке:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
systemctl enable ervu-sign-module
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
5. Запустить службу:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
systemctl start ervu-sign-module
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Проверка
|
|
|
|
|
|
|
|
|
|
|
|
Для проверки работы модуля выполните команду:
|
|
|
|
|
|
``` bash
|
|
|
|
|
|
curl -v http://127.0.0.1/sign -H "Content-Type: text/plain" -d "test"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Вывод должен быть примерно таким (статус-код ответа должен быть равен 200 OK)
|
|
|
|
|
|
```
|
|
|
|
|
|
* Trying 127.0.0.1:80...
|
|
|
|
|
|
* Connected to 127.0.0.1 (127.0.0.1) port 80
|
|
|
|
|
|
> POST /sign HTTP/1.1
|
|
|
|
|
|
> Host: 127.0.0.1
|
|
|
|
|
|
> 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: Tue, 20 Aug 2024 12:00:25 GMT
|
|
|
|
|
|
< Content-Type: text/plain
|
|
|
|
|
|
< Transfer-Encoding: chunked
|
|
|
|
|
|
< Connection: keep-alive
|
|
|
|
|
|
<
|
|
|
|
|
|
REFlyzGQrCjX9DvA7hWwN9vf5kPqBxcG4TLYnXUHnAS9_G-sLAFvaJei2OhxpaWNraHbOv_mMsM_bcDsXWiC0Q
|
|
|
|
|
|
* Connection #0 to host 127.0.0.1 left intact
|
|
|
|
|
|
```
|