Вводные данные:
- Система Debian 11
- 1С версия 8.3.19.1522
- КриптоПро 5
Наша задача настроить подпись документов на сервере, а также автоматическую отправку и получение регламентным заданием.
1. Подготовка системы.
Сервер 1с у нас уже установлен и настроен, если нет то прошу сюда. Для начала скачаем дистрибутив криптопро с сайта разработчика (качаем архитектуру ту которой у нас сервер 1с), заострять я здесь внимание на этом не буду и переходим непосредственно к установке криптопро.
2. Установка КриптоПро
Распаковываем архив.
1 |
tar xzfv linux-amd64_deb.tgz |
Переходим в директорию куда распаковали
1 |
cd linux-amd64_deb/ |
Запускаем установку без графики, она нам не нужна т.к. на сервере не графического окружения
1 |
./install.sh |
3. Установка сертификатов и закрытых ключей
Ключ был у меня установлен на клиентской машине с debian на борту, а т.к. сервер у нас в контейнере перенести на флешке или токене довольно затруднительно. Поэтому перенесем вручную ключ и сертификат.
Все закрытые ключи хранятся по пути
1 |
var/opt/cprocsp/keys/<username> |
Где username пользователь у которого установлены ключи.
Поэтому просто копируем папку на наш сервер предварительно создав папку для пользователя 1с от которого запущен сервер.
1 |
mkdir /var/opt/cprocsp/keys/usr1cv8 |
Выставляем права
1 |
chmod 700 /var/opt/cprocsp/keys/usr1cv8/ |
Копируем наш закрытый ключ в нашу папку
1 |
cp /home/usr1cv8/57559332.000 /var/opt/cprocsp/keys/usr1cv8/ |
Выставляем права на директорию с ключем
1 |
chmod 700 /var/opt/cprocsp/keys/usr1cv8/57559332.000 |
Выставляем права на сами файлы
1 |
chmod 600 /var/opt/cprocsp/keys/usr1cv8/57559332.000/* |
Меняем владельца
1 |
chown usr1cv8:grp1cv8 -R /var/opt/cprocsp/keys/usr1cv8/ |
Теперь дело за сертификатами, для начала смотрим сколько у нас их.
1 |
/opt/cprocsp/bin/amd64/certmgr -list |
У меня их два, но нужен только один под цифрой 2 поэтому экспортируем только его
1 |
/opt/cprocsp/bin/amd64/certmgr -export -dest 2.cer |
Также копируем на сервер в директорию в которой есть права на чтение у пользователя от которого запущен сервер 1с. После этого приступ к установке непосредственно самого ключа и сертификата. Но для начала зайдем под нашим пользователем 1с
1 |
su usr1cv8 |
Посмотрим какие ключи у нас есть
1 |
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn |
Видим следующее
1 2 3 4 5 |
CSP (Type:80) v5.0.10010 KC1 Release Ver:5.0.12417 OS:Linux CPU:AMD64 FastCode:READY:AVX. AcquireContext: OK. HCRYPTPROV: 16972003 \\.\HDIMAGE\57559332@2020-10-16-ООО Firma OK. Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,010 sec [ErrorCode: 0x00000000] |
Ссылка на наш закрытый ключ
1 |
\\.\HDIMAGE\57559332@2020-10-16-ООО Firma |
Запомним его. И перейдем к установке сертификата. У меня данные такие:
Сертификат находится /home/usr1cv8
Ключ \.\HDIMAGE\57559332@2020-10-16-ООО Firma
Поэтому команда будет выглядеть следующим образом
1 |
/opt/cprocsp/bin/amd64/certmgr -inst -file /home/usr1cv8/2.cer -cont '\.\HDIMAGE\57559332@2020-10-16-ООО Firma' |
Вывод в конце должен быть следующий
1 |
[ErrorCode: 0x00000000] |
Теперь проверим ссылку на закрытый ключ
1 |
/opt/cprocsp/bin/amd64/certmgr -list |
Должно быть
1 |
Ссылка на ключ : Есть |
4. Требования 1С
У 1С есть несколько требований к ключам:
- Криптопровайдер должен быть Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
- У ключа должен быть пароль, пустой не допускается
Смена криптопровайдера делается довольно просто
1 |
/opt/cprocsp/bin/amd64/csptest -absorb -certs -provtype 80 -provider "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider" |
Пароль тоже ставится довольно легко
1 |
/opt/cprocsp/bin/amd64/csptestf -passwd -cont '\\.\HDIMAGE\57559332@2020-10-16-ООО Firma' -change 'qwe123' |
\.\HDIMAGE\57559332@2020-10-16-ООО Firma — наш ключ
qwe123 наш пароль
5. Финал
Теперь переходим в 1С и делаем диагностику 1С эдо, должно все быть вот так
На это все.