Подробный гайд по настройке связки 1С:Предприятие, КриптоПро CSP и ALT Linux
1. Требования и подготовка
Версии ПО:
- ALT Linux 10/11 (рекомендуется Server или Workstation)
- КриптоПро CSP 5.0 R2 или новее
- 1С:Предприятие 8.3.x (сервер или клиент)
Предварительные условия:
- Права root
- Подключение к интернету
- Установленный менеджер пакетов
apt
Обновите систему:
su -
apt-get update
apt-get dist-upgrade
Установите зависимости:
apt-get install rpm-build alien p7zip-full curl wget
2. Установка КриптоПро CSP
2.1. Загрузка пакетов
Скачайте дистрибутив с официального сайта КриптоПро - https://www.cryptopro.ru/products/csp (требуется регистрация).
Выберите версию для Linux x64 (RPM-пакеты).
2.2. Установка пакетов
cd /path/to/cryptopro
# Установите базовые пакеты
rpm -ivh lsb-cprocrypto-*.rpm
rpm -ivh cprocsp-*.rpm
rpm -ivh cprocsp-rdr-*.rpm
rpm -ivh cprocsp-curl-*.rpm
Для работы с токенами (Рутокен, eToken):
rpm -ivh cprocsp-rdr-pcsc-*.rpm
rpm -ivh cprocsp-rdr-gui-*.rpm
rpm -ivh pcsc-lite-ccid-*.rpm
2.3. Проверка установки
/opt/cprocsp/sbin/amd64/csptest -keyset -enum_cont -unique -fqcn -type hd
Если команда выполнена без ошибок — КриптоПро установлен корректно.
3. Установка и настройка сертификатов
3.1. Запуск GUI-утилиты (опционально)
/opt/cprocsp/sbin/amd64/cptools
3.2. Установка сертификата через CLI
Вариант А: Из файла (.cer, .pfx):
# Установка сертификата
/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -file /path/to/cert.cer
# Установка контейнера (если есть .pfx с ключом)
/opt/cprocsp/bin/amd64/csptest -keyset -install -container "ИмяКонтейнера" -file /path/to/cert.pfx
Вариант Б: С токена (Рутокен):
# Просмотр контейнеров на токене
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -unique -fqcn
# Установка сертификата с токена в хранилище
/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\HDIMAGE\ИмяКонтейнера.000\A000'
3.3. Проверка сертификатов
/opt/cprocsp/bin/amd64/certmgr -list
4. Установка 1С:Предприятие
4.1. Загрузка RPM-пакетов
Скачайте с портала 1С - https://users.v8.1c.ru/ (нужна подписка ИТС):
1c-enterprise83-server-*.rpm(сервер)1c-enterprise83-client-*.rpm(клиент, опционально)1c-enterprise83-thinclient-*.rpm(тонкий клиент)
4.2. Установка сервера
# Установка зависимостей
apt-get install unixodbc libwebkitgtk-1.0-0 libX11-xcb1 libxslt1
# Установка сервера
rpm -ivh 1c-enterprise83-server-*.rpm
rpm -ivh 1c-enterprise83-ws-*.rpm # веб-сервер, если нужен
4.3. Создание пользователя для 1С
useradd -m -s /bin/bash usr1cv8
passwd usr1cv8
4.4. Запуск служб
systemctl start srv1cv83
systemctl enable srv1cv83
4.5. Проверка статуса
systemctl status srv1cv83
5. Настройка взаимодействия 1С и КриптоПро
5.1. Конфигурация КриптоПро для 1С
Создайте/отредактируйте файл /etc/opt/cprocsp/config64.ini:
[KeyCarriers]
KC_1=KC_HDIMAGE
KC_2=KC_REGFLASH
KC_3=KC_FLOPPY
[KeyCarriers\KC_HDIMAGE]
Name=HDImage Carrier
DLL=/opt/cprocsp/lib/amd64/libhdimage.so.64
5.2. Настройка прав доступа
Добавьте пользователя 1С в нужные группы:
usermod -aG crypto usr1cv8
# Если используете токены:
usermod -aG pcscd usr1cv8
5.3. Копирование контейнеров для службы 1С
Служба 1С запускается от usr1cv8, поэтому контейнеры должны быть доступны этому пользователю:
# Скопируйте контейнеры из профиля root
cp -r /root/.cache/cprocsp/* /home/usr1cv8/.cache/cprocsp/
chown -R usr1cv8:usr1cv8 /home/usr1cv8/.cache/cprocsp/
# Или перенесите хранилище сертификатов
cp -r /root/.config/cprocsp/* /home/usr1cv8/.config/cprocsp/
chown -R usr1cv8:usr1cv8 /home/usr1cv8/.config/cprocsp/
Важно:
Если вы используете сервис 1С через systemd, контейнеры должны быть в профиле пользователя usr1cv8, а не root.
5.4. Настройка криптопровайдера в 1С
В консоли администрирования 1С:
- Откройте параметры информационной базы
- Перейдите в раздел "Дополнительные параметры"
- Укажите:
- Имя провайдера:
Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider - Имя контейнера: имя контейнера с сертификатом (из вывода
csptest)
- Имя провайдера:
6. Настройка токенов (если используются)
6.1. Запуск PCSC-сервиса
systemctl start pcscd
systemctl enable pcscd
6.2. Настройка прав на USB-устройства
Создайте правило udev /etc/udev/rules.d/99-ruToken.rules:
SUBSYSTEM=="usb", ATTRS{idVendor}=="0a89", MODE="0666"
Перезагрузите udev:
udevadm control --reload-rules
7. Проверка работоспособности
7.1. Тест через 1С
В 1С откройте консоль кода:
ПроверитьПодпись = Новый Подпись;
Сертификат = Новый Сертификат;
Сертификат.ЗагрузитьИзФайла("/path/to/cert.cer");
Данные = "Тестовая строка";
ПодписанныеДанные = Подписать(Данные, Сертификат);
Сообщить("Подпись создана: " + ПодписанныеДанные);
7.2. Логирование ошибок
Включите журнал КриптоПро:
export CPROCSP_TRACE_LEVEL=5
export CPROCSP_TRACE_FILE=/var/log/cprocsp_trace.log
8. Типовые проблемы и решения
Проблема: "Контейнер не найден"
Решение:
Контейнеры в профиле root, а служба 1С работает от usr1cv8.
/opt/cprocsp/bin/amd64/csptest -keyset -copy_cont -cont_src "\\.\HDIMAGE\Name.000" -cont_dest "\\.\HDIMAGE\Name_usr1cv8.000"
Проблема: "Не удалось создать подпись"
Решение:
Проверьте, что КриптоПро видит контейнер от имени usr1cv8:
su - usr1cv8
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont
Проблема: Ошибки лицензирования
Проверьте наличие лицензий:
/opt/cprocsp/sbin/amd64/cpconfig -license -view
Проблема: Токен не определяется
# Проверка USB-устройств
lsusb
# Проверка pcscd
systemctl status pcscd
journalctl -u pcscd
9. Автоматизация и скрипты
Скрипт резервного копирования контейнеров
#!/bin/bash
# backup_csp.sh
BACKUP_DIR="/backup/csp"
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/csp_$(date +%Y%m%d).tar.gz" /home/usr1cv8/.cache/cprocsp/
Мониторинг через Zabbix
Создайте скрипт проверки доступности контейнеров:
#!/bin/bash
# check_csp.sh
CONTAINERS=$(/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont 2>/dev/null | grep -c "FQCN")
echo $CONTAINERS
10. Обновление и обслуживание
Обновление КриптоПро
rpm -Uvh lsb-cprocrypto-*.rpm
rpm -Uvh cprocsp-*.rpm
Обновление 1С
systemctl stop srv1cv83
rpm -Uvh 1c-enterprise83-server-*.rpm
systemctl start srv1cv83
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.