18 KiB
Установка модуля подписания
Создание пользователя ervu
-
Создать пользователя ervu. Для этого выполнить команды от имени root:
adduser --system --no-create-home --user-group ervu
Установка и настройка КриптоПро
-
Скачать КриптоПро 5 R3 КС3.
-
Установить КриптоПро.
2.1. Для продуктивного контура:
2.1.1. Установить КриптоПро c конфигурацией kc2. Для этого выполнить команды от имени root:tar -zxvf linux-amd64.tgz && cd ./linux-amd64/ ./install.sh kc2 cprocsp-pki-cades cd -2.1.2. Установить ПАК "Соболь" по инструкции: https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/285/2/ispolzovnie-pak-sobol-v-kchestve-dsch-v-kriptopro-csp-n-linux
2.2. Для тестового контура:
2.2.1. Установить КриптоПро c конфигурацией kc1. Для этого выполнить команды от имени root:
tar -zxvf linux-amd64.tgz && cd ./linux-amd64/
./install.sh kc1 cprocsp-pki-cades
cd -
-
Активировать лицензию:
/opt/cprocsp/sbin/amd64/cpconfig -license -set "Номер"
Установка ключевой пары ИС, зарегистрированной в ЕСИА
-
Запросить у руководителя проекта реестра повесток контейнер с ключом ИС, зарегистрированной в ЕСИА.
-
Установить полученную ключевую пару для пользователя, от которого запускается модуль подписания (команды выполняются от имени ervu).
Внимание! В следующих командах необходимо заменить key_cont.000 на название контейнера, полученного на предыдущем шаге.
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
-
Получить перечень сертификатов:
/opt/cprocsp/bin/amd64/certmgr -list
Получить следующие значения:
-
Поле "SHA1 отпечаток": это значение нужно будет указать в конфигурационном файле модуля подписания в качестве настройки <sign_cert_thumbprint>
-
Поле "Ссылка на ключ": убедиться, что значение равно "Есть" (иначе необходимо проверить выполнение предыдущих шагов)
-
Поля "URL сертификата УЦ": по ссылкам, указанным в этом значении, скачать сертификаты УЦ и установить их (описано далее)
-
Поля "URL списка отзыва": в случае отсутствия доступа к УЦ, по ссылкам, указанным в этом значении, скачать CRL и установить их (описано далее)
-
Установить сертификаты УЦ (поля "URL сертификата УЦ" в свойствах сертификата). Для каждого сертификата выполнить команду от имени root:
/opt/cprocsp/bin/amd64/certmgr -install -store mRoot -file <sign_ca_cert>.cer -
В случае отсутствия доступа к УЦ, установить CRL (поле "URL списка отзыва" в свойствах сертификата).
5.1. Для каждого CRL выполнить команду от имени ervu:
/opt/cprocsp/bin/amd64/certmgr -install -store uCA -crl -file <sign_ca_crl>.crl5.2. Для каждого CRL проверить наличие Delta CRL (разностного списка отозванных сертификатов). Для этого:
5.2.1. Проверить свойства CRL, выполнив команду:
/opt/cprocsp/bin/amd64/certmgr -list -crl -file <sign_ca_crl>.crl5.2.2. Если среди отображенных свойств есть поле "URL дельта CRL", то по указанным ссылкам скачать разностные CRL и установить их так же, как описано в
п. 5.1. -
(опционально) Сделать тестовую подпись с помощью установленного контейнера и полученных значений <sign_cert_thumbprint> и <sign_cert_password>:
touch test.txt /opt/cprocsp/bin/amd64/cryptcp -signf -thumbprint <sign_cert_thumbprint> -pin <sign_cert_password> -errchain ./test.txt rm -f test.txt test.txt.sgn
Установка сертификата ЕСИА
-
Скачать сертификаты тестовой и продуктивной сред ЕСИА, используемые для формирования электронных подписей ответов как поставщика, по ссылке: https://esia.gosuslugi.ru/public/esia.zip
-
Из списка сертификатов выбрать тот, который подходит под конфигурацию стенда (в зависимости от того, является ли среда тестовой или продуктивной):
| Среда \ Алгоритм подписания | GOST3410_2012_256 |
|---|---|
| TESIA GOST 2012 new.cer | |
| Тестовая | Отпечаток: b3a7890493bdd95d47c6871627b475e276962bf1 |
| Срок действия: по 21.04.2026 | |
| ----------------------------- | ----------------------------------------------------- |
| ГОСТ_PROD_25_26.cer | |
| Продуктивная | Отпечаток: 2583cca4e2aad8d8170ef73fecc592ccac46821d |
| Срок действия: по 17.06.2026 |
-
Установить выбранный сертификат для пользователя, от которого запускается модуль подписания (команды выполняются от имени ervu).
/opt/cprocsp/bin/amd64/certmgr -install -file '<esia_cert>.cer'
Результатом команды будет список полей сертификата. Из него необходимо получить следующие значения:
-
Поле "SHA1 отпечаток": это значение нужно будет указать в конфигурационном файле модуля подписания в качестве настройки <esia_cert_thumbprint>.
-
Поле "Алгоритм подписи": проверить, что значение совпадает с настройками ИС в ЕСИА.
-
Поле "Истекает": проверить, что срок действия сертификата не истёк.
-
Поля "URL сертификата УЦ": по ссылкам, указанным в этом значении, скачать сертификаты УЦ и установить их (описано далее)
-
Поля "URL списка отзыва": в случае отсутствия доступа к УЦ, по ссылкам, указанным в этом значении, скачать CRL и установить их (описано далее)
-
Установить сертификаты УЦ (поля "URL сертификата УЦ" в свойствах сертификата). Для каждого сертификата выполнить команду от имени root:
/opt/cprocsp/bin/amd64/certmgr -install -store mRoot -file <esia_ca_cert>.cer -
В случае отсутствия доступа к УЦ, установить CRL (поле "URL списка отзыва" в свойствах сертификата).
5.1. Для каждого CRL выполнить команду от имени ervu:
/opt/cprocsp/bin/amd64/certmgr -install -store uCA -crl -file <esia_ca_crl>.crl5.2. Для каждого CRL проверить наличие Delta CRL (разностного списка отозванных сертификатов). Для этого:
5.2.1. Проверить свойства CRL, выполнив команду:
/opt/cprocsp/bin/amd64/certmgr -list -crl -file <esia_ca_crl>.crl5.2.2. Если среди отображенных свойств есть поле "URL дельта CRL", то по указанным ссылкам скачать разностные CRL и установить их так же, как описано в
п. 5.1.
Установка и настройка nginx
Дальнейшие шаги выполняются от имени root:
-
Установить nginx:
apt-get install nginx -
Скопировать файл настроек для nginx:
cp conf/nginx.conf /etc/nginx/ -
Запустить nginx:
systemctl start nginx
Установка и настройка ervu-sign-module
- Установить зависимости для запуска приложения:
apt-get install glib2 libfcgi libjson-glib libuuid
-
Скопировать исполняемый файл:
mkdir /opt/ervu-sign-module/ cp ./ervu-sign-module /opt/ervu-sign-module/ -
Скопировать файл настроек:
cp conf/ervu-sign-module.conf /etc/ -
Скопировать юнит:
cp ./ervu-sign-module.service /etc/systemd/system/ -
Включить запуск службы при загрузке:
systemctl enable ervu-sign-module -
Запустить службу:
systemctl start ervu-sign-module
Проверка
ВАЖНО: все проверки из пунктов ниже необходимо выполнять при каждой установке. Результаты проверки выслать РП команды разработки
Цепочка сертификата ИС
Проверить цепочку сертификатов для сертификата ИС (команда выполняется от имени ervu):
/opt/cprocsp/bin/amd64/certmgr -list -thumbprint <sign_cert_thumbprint> -chain
Результатом команды должна быть строка "Цепочка сертификатов: Успешно проверена."
Подробнее о проверке цепочки сертификатов здесь: https://www.altlinux.org/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%9F%D1%80%D0%BE#%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D0%B2
Цепочка сертификата ЕСИА
Проверить цепочку сертификатов для сертификата ЕСИА (команда выполняется от имени ervu):
/opt/cprocsp/bin/amd64/certmgr -list -thumbprint <esia_cert_thumbprint> -chain
Результатом команды должна быть строка "Цепочка сертификатов: Успешно проверена."
Подробнее о проверке цепочки сертификатов здесь: https://www.altlinux.org/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%9F%D1%80%D0%BE#%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D0%B2
Подписание
Для проверки работы модуля выполните команду:
/opt/cprocsp/bin/amd64/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: application/json
< Transfer-Encoding: chunked
< Connection: keep-alive
<
{
"signature": "urlSafeBase64_of_signed_string_test_with_state",
"state": "7c327cb7-7916-4255-bc46-85fbc5ad7d5f"
}
* Connection #0 to host 127.0.0.1 left intact
Версия приложения
Для того, чтобы узнать версию приложения, введите команду:
/opt/cprocsp/bin/amd64/curl -v http://127.0.0.1/version
В ответе будет получена версия приложения (статус-код ответа должен быть равен 200 OK).
Лицензия КриптоПро
Команда для проверки лицензии КриптоПро:
/opt/cprocsp/sbin/amd64/cpconfig -license -view
Название и тип криптопровайдера
Команда для просмотра типов доступных криптопровайдеров:
/opt/cprocsp/sbin/amd64/cpconfig -defprov -view_type
Команда для просмотра свойств криптопровайдера нужного типа:
/opt/cprocsp/sbin/amd64/cpconfig -defprov -view -provtype <provtype>
где <provtype> - это тип криптопровайдера.
Утилита TSLTool
Утилита TSLTool предназначена для выполнения следующих действий:
- установка корневого сертификата Головного удостоверяющего центра;
- загрузка TSL (списка аккредитованных удостоверяющих центров, Trust‑service Status List);
- установка сертификатов подчинённых удостоверяющих центров;
- загрузка и установка CRL аккредитованных удостоверяющих центров;
- удаление CRL и сертификатов аккредитованных удостоверяющих центров с истекшим сроком действия.
Порядок установки утилиты TSLTool
-
Скачать дистрибутив утилиты TSLTool по ссылке: https://cryptopro.ru/sites/default/files/products/svs/linux/2/1157/cprotools-tsl_1.0.1157-1_amd64.deb
-
Установить необходимые инструменты для установки deb-пакета:
apt-get install -y dpkg
- Установить улититу TSLTool (указать корректный путь к файлу, если он отличается):
mkdir -p /var/lib/dpkg/ && touch /var/lib/dpkg/status
dpkg -i /cprotools-tsl_1.0.1157-1_amd64.deb
Примечание: если файл находится не в текущей директории, укажите полный путь к нему.
Порядок установки сертификатов аккредитованных удостоверяющих центров
- Загрузить TSL в файл
tsl.xml(указать корректную ссылку для скачивания, если она отличается):
/opt/cprocsp/bin/amd64/curl -o tsl.xml https://e-trust.gosuslugi.ru/app/scc/portal/api/v1/portal/ca/getxml
- Установить сертификаты аккредитованных удостоверяющих центров из
tsl.xml(команда выполняется от имени root):
/opt/cprotools/tsltool/tsltool --skiproot --tslfile tsl.xml --skipcrl --onlyvalidca
Примечание: На экран будет выведено предупреждение о том, что установка большого количества объектов приводит к серьёзной деградации производительности TSL‑сервера и операционной системы в целом. Необходимо подтвердить данное действие.
- Настроить регулярное обновление сертификатов с помощью CRON.
Дополнительная информация
-
В случае возникновения ошибок проверьте логи утилиты TSLTool. По умолчанию они сохраняются по пути:
/var/log/cprotools/tsltool/log.clef. -
Подробнее об утилите TSLTool см. по ссылке: https://dss.cryptopro.ru/docs/svs/adminguide/set/tsltool.html
Примечания
Подробнее о работе с КриптоПро CSP здесь: