добавлены Инструкция по сборке.md и Инструкция по установке.md
This commit is contained in:
parent
6bea066cac
commit
8e81edc58a
3 changed files with 158 additions and 54 deletions
63
README.md
63
README.md
|
|
@ -28,66 +28,21 @@ $ curl -v http://127.0.0.1:8080/sign -H "Content-Type: text/plain" -d "test"
|
|||
urlSafeBase64_of_signed_string_test
|
||||
```
|
||||
|
||||
## Сборка и установка
|
||||
## Сборка из исходников
|
||||
|
||||
### Подготовка
|
||||
Инструкции по сборке из исходников см. "Инструкция по сборке.md"
|
||||
|
||||
1. Установить КриптоПро.
|
||||
|
||||
2. Установить сертификат для пользователя, под которым будет запускаться данное приложение.
|
||||
|
||||
3. Установить nginx.
|
||||
|
||||
4. В настройках nginx добавить перенаправление на данное приложение:
|
||||
```
|
||||
location = /sign {
|
||||
fastcgi_pass localhost:9009;
|
||||
include fastcgi_params;
|
||||
}
|
||||
```
|
||||
|
||||
### Cборка из исходников
|
||||
|
||||
Для **сборки** необходимы следующие библиотеки:
|
||||
- cmake
|
||||
- gcc
|
||||
- gcc10
|
||||
- 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.
|
||||
Примечание. Чтобы задать произвольное имя конфигурационного файла, при сборке приложения необходимо задать параметр CONFIG_NAME.
|
||||
Пример:
|
||||
```
|
||||
cmake -DCONFIG_NAME=/opt/ervu-sign-module.conf
|
||||
cmake -DCONFIG_NAME=/opt/ervu-sign-module.conf ..
|
||||
```
|
||||
|
||||
### Настройка
|
||||
## Установка
|
||||
|
||||
Инструкции по установке см. "Инструкция по установке.md"
|
||||
|
||||
## Настройка
|
||||
|
||||
Приложение настраивается в конфигурационном файле, заданном на этапе сборки (по умолчанию, /etc/ervu-sign-module.conf).
|
||||
|
||||
|
|
|
|||
33
Инструкция по сборке.md
Normal file
33
Инструкция по сборке.md
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
## Сборка модуля подписания
|
||||
|
||||
### Установка КриптоПро
|
||||
|
||||
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
|
||||
apt-get install ./lsb-cprocsp-devel-5.0.12800-7.noarch.rpm
|
||||
cd -
|
||||
```
|
||||
|
||||
### Сборка ervu-sign-module
|
||||
|
||||
1. Установить зависимости для сборки приложения:
|
||||
``` bash
|
||||
apt-get install cmake gcc gcc10
|
||||
apt-get install glib2-devel libfcgi-devel
|
||||
```
|
||||
|
||||
2. Собрать приложение из исходников:
|
||||
``` bash
|
||||
cd ervu-sign-module/
|
||||
|
||||
mkdir .build && cd .build
|
||||
cmake ..
|
||||
make -j$(nproc)
|
||||
```
|
||||
|
||||
Результатом сборки будет файл ervu-sign-module в папке .build/
|
||||
116
Инструкция по установке.md
Normal file
116
Инструкция по установке.md
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
## Установка модуля подписания
|
||||
|
||||
### Создание пользователя 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
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue