ervu-sign-module/Инструкция по установке.md

116 lines
3.1 KiB
Markdown
Raw Normal View History

## Установка модуля подписания
### Создание пользователя 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 "Номер"
```
4. Установить сертификат для пользователя ervu (команды выполняются от имени **ervu**):
``` 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
```
### Установка и настройка 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
```