Вдохновившись статьей на хабре "Готовим 1С-Отчетность в Linux" попытался настроить на Ubuntu 18.04 amd.
Установил cprocsp 5.0.11455-5 с помощью install_gui.sh, выбрал все пункты.
В 1с:
Платформа: 1С:Предприятие 8.3 (8.3.14.1779)
Конфигурация: Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.74.58) (http://v8.1c.ru/buhv8/)
Copyright (С) ООО "1C-Софт", 2009 - 2019. Все права защищены
(http://www.1c.ru)
Режим: Файловый (без сжатия)
Приложение: Толстый клиент
Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)
Вариант интерфейса: Такси
Указал
Криптопровайдер КриптоПро CSP
В настройках порграмм электронной подписи указал путь к библиотеке
/opt/cprocsp/lib/amd64/libcapi20.so для ГОСТ 2001, 2012. 1с ответила, что библиотека установлена.
Отправился на функцию подключения отчетности, заполнил данные, нажал на отправить заявление. В модальном окне подложение создать закрытый ключ. Запустил создание закрытого ключа. Операция завершалась с ошибкой "Крипографическая ошибка: не удалось создать контейнер закрытого ключа".
syslog содержит
Цитата:Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: message repeated 4 times: [ <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003]
Nov 23 15:53:10 silver 1cv8: <capi20>CertAlgIdToOID!(failed: LastError = 0x80091003)
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: <capi20>CertAlgIdToOID!(failed: LastError = 0x80091003)
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: <capi20>CertAlgIdToOID!(failed: LastError = 0x80091003)
Nov 23 15:53:10 silver 1cv8: <capi10>CryptGetProvParam!failed: LastError = 0x103
Nov 23 15:53:10 silver 1cv8: <capi10>CryptGetProvParam!failed: LastError = 0x103
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: <capi10>CryptGetProvParam!failed: LastError = 0x103
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: <capi10>CryptGetProvParam!failed: LastError = 0x103
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: message repeated 4 times: [ <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003]
Nov 23 15:53:10 silver 1cv8: <capi20>CertAlgIdToOID!(failed: LastError = 0x80091003)
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: <capi20>CertAlgIdToOID!(failed: LastError = 0x80091003)
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: <capi20>CertAlgIdToOID!(failed: LastError = 0x80091003)
Nov 23 15:53:10 silver 1cv8: <capi10>CryptGetProvParam!failed: LastError = 0x103
Nov 23 15:53:10 silver 1cv8: <capi10>CryptGetProvParam!failed: LastError = 0x103
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: <capi10>CryptGetProvParam!failed: LastError = 0x103
Nov 23 15:53:10 silver 1cv8: <capi10>CryptFindOIDInfo!failed: LastError = 0x80091003
Nov 23 15:53:10 silver 1cv8: <capi10>CryptGetProvParam!failed: LastError = 0x103
Nov 23 15:53:10 silver cryptsrv: <cpcsp>OpenContainer!OpenContainer kcar_open fail (0x80090016)
Nov 23 15:53:10 silver 1cv8: <capi10>CryptAcquireContextA!failed: LastError = 0x80090016
Nov 23 15:53:10 silver 1cv8: <capi10>CryptAcquireContextW!failed: LastError = 0x80090016
Nov 23 15:53:10 silver 1cv8: <capi10>CryptGetUserKey!failed: LastError = 0x8009000D
Nov 23 15:53:10 silver cryptsrv: <cpcsp>SetPhysicRSG!rndm_find_mask fail
Nov 23 15:53:10 silver cryptsrv: <cpcsp>DSRFInitRSG!SetPhysicRSG failed
Nov 23 15:53:10 silver cryptsrv: <cpcsp>create_random_key!DSRFInitRSG fail
Nov 23 15:53:10 silver cryptsrv: <cpcsp>create_one_key!pNewKeyPair
Nov 23 15:53:10 silver cryptsrv: <cpcsp>CPCGenKey!: CreateCryptObject fail ret obj
Nov 23 15:53:10 silver 1cv8: <capi10>CryptGenKey!failed: LastError = 0x80090020
Я вообще ничерта не разбирась в этой теме. Поделюсь своим представлением. КриптоПро предоставлят программный интерфейс для созадния закрытого, открытого ключей. Далее она обслуживает хранение ключей. Возможно ещё и функции шифрования. 1с является пользователеем программного интерфейса и всем процессом управлеят она сама. Я как человек-пользователь должен лишь установить КриптоПро и прописать пути нахождения КриптоПро для 1с.Что от меня ещё требуется? Я рассчитываю на то, что ключи будут храниться локально на диске в папке /var/opt/cprocsp/keys/ локального пользователя, верно?
Пока дело не движется, я поискал статьи создания ключей из командной строки командами самого КриптоПро. Я руководствовался материалами ALT Linux КриптоПро. Там предлагали создать тестовое хранилище ГОСТ 2001 (75)
Вот неуспешная попытка создать ключи
Цитата:/opt/cprocsp/bin/amd64$ ./csptest -keyset -provtype 75 -newkeyset -cont '\\.\HDIMAGE\test'
CSP (Type:75) v5.0.10003 KC2 Release Ver:5.0.11455 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 40302819
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC2 CSP
Container name: "test"
Signature key is not available.
Attempting to create a signature key...
An error occurred in running the program.
/dailybuildsbranches/CSP_5_0r0/CSPbuild/CSP/samples/csptest/ctkey.c:2515:GenKey()
Error number 0x80090020 (2148073504).
Внутренняя ошибка.
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,010 sec
[ErrorCode: 0x80090020]
В syslog
Цитата:Nov 23 16:00:33 silver csptest: <capi10>CryptGetUserKey!failed: LastError = 0x8009000D
Nov 23 16:00:33 silver cryptsrv: <cpcsp>SetPhysicRSG!rndm_find_mask fail
Nov 23 16:00:33 silver cryptsrv: <cpcsp>DSRFInitRSG!SetPhysicRSG failed
Nov 23 16:00:33 silver cryptsrv: <cpcsp>create_random_key!DSRFInitRSG fail
Nov 23 16:00:33 silver cryptsrv: <cpcsp>create_one_key!pNewKeyPair
Nov 23 16:00:33 silver cryptsrv: <cpcsp>CPCGenKey!: CreateCryptObject fail ret obj
Nov 23 16:00:33 silver csptest: <capi10>CryptGenKey!failed: LastError = 0x80090020
Попытка с ГОСТ 2012 80
Цитата:opt/cprocsp/bin/amd64$ ./csptest -keyset -provtype 80 -newkeyset -cont '\\.\HDIMAGE\test2012'
CSP (Type:80) v5.0.10003 KC2 Release Ver:5.0.11455 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 28879091
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC2 CSP
Container name: "test2012"
Signature key is not available.
Attempting to create a signature key...
An error occurred in running the program.
/dailybuildsbranches/CSP_5_0r0/CSPbuild/CSP/samples/csptest/ctkey.c:2515:GenKey()
Error number 0x80090020 (2148073504).
Внутренняя ошибка.
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,020 sec
[ErrorCode: 0x80090020]
syslog
Цитата:Nov 23 16:01:37 silver csptest: <capi10>CryptGetUserKey!failed: LastError = 0x8009000D
Nov 23 16:01:37 silver cryptsrv: <cpcsp>SetPhysicRSG!rndm_find_mask fail
Nov 23 16:01:37 silver cryptsrv: <cpcsp>DSRFInitRSG!SetPhysicRSG failed
Nov 23 16:01:37 silver cryptsrv: <cpcsp>create_random_key!DSRFInitRSG fail
Nov 23 16:01:37 silver cryptsrv: <cpcsp>create_one_key!pNewKeyPair
Nov 23 16:01:37 silver cryptsrv: <cpcsp>CPCGenKey!: CreateCryptObject fail ret obj
Nov 23 16:01:37 silver csptest: <capi10>CryptGenKey!failed: LastError = 0x80090020
Nov 23 16:01:42 silver csptest: <capi10>CryptGetUserKey!failed: LastError = 0x8009000D
Nov 23 16:01:42 silver cryptsrv: <cpcsp>SetPhysicRSG!rndm_find_mask fail
Nov 23 16:01:42 silver cryptsrv: <cpcsp>DSRFInitRSG!SetPhysicRSG failed
Nov 23 16:01:42 silver cryptsrv: <cpcsp>create_random_key!DSRFInitRSG fail
Nov 23 16:01:42 silver cryptsrv: <cpcsp>create_one_key!pNewKeyPair
Nov 23 16:01:42 silver cryptsrv: <cpcsp>CPCGenKey!: CreateCryptObject fail ret obj
Nov 23 16:01:42 silver csptest: <capi10>CryptGenKey!failed: LastError = 0x80090020
В перечне насителей есть hdimage
Цитата:/opt/cprocsp/bin/amd64$ ./csptest -enum -info -type PP_ENUMREADERS
CSP (Type:80) v5.0.10003 KC2 Release Ver:5.0.11455 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 28465299
GetProvParam(...PP_ENUMREADERS...) until it returns false
Len Byte NickName/Name
_____________________________
0x012a 0x00 CLOUD
Cloud Token
0x012a 0x01 FLASH
FLASH
0x012a 0x00 HDIMAGE
HDD key storage
Cycle exit when getting data. 3 items found. Level completed without problems.
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,010 sec
[ErrorCode: 0x00000000]
Установлен пакет
Цитата:/linux-amd64_deb$ sudo dpkg -i cprocsp-rdr-pcsc-64_5.0.11455-5_amd64.deb
(Чтение базы данных … на данный момент установлено 496238 файлов и каталогов.)
Подготовка к распаковке cprocsp-rdr-pcsc-64_5.0.11455-5_amd64.deb …
Error code:-2146435049
The specified reader is not currently available for use.
Распаковывается cprocsp-rdr-pcsc-64 (5.0.11455-5) на замену (5.0.11455-5) …
Настраивается пакет cprocsp-rdr-pcsc-64 (5.0.11455-5) …
/usr/lib/pcsc
device with same VID:PID "072F:90CC" already exists
device with same VID:PID "072F:1204" already exists
device with same VID:PID "072F:8201" already exists
device with same VID:PID "072F:8202" already exists
device with same VID:PID "072F:90DB" already exists
device with same VID:PID "0483:ACD1" already exists
device with same VID:PID "0A89:0025" already exists
device with same VID:PID "0A89:0030" already exists
device with same VID:PID "0A89:0080" already exists
device with same VID:PID "0A89:0081" already exists
device with same VID:PID "0A89:0060" already exists
same device "072F:90DE ACS Token - CP" already registered
device with same VID:PID "24DC:0102" already exists
same device "2FB0:0002 Infocrypt Token++ - CP" already registered
same device "2FB0:0004 Infocrypt Token++ - CP" already registered
same device "2FB0:0006 Infocrypt Token++ lite - CP" already registered
same device "2FB0:0008 Infocrypt Token++ lite - CP" already registered
same device "2FB0:003A Infocrypt Token++ lite - CP" already registered
same device "2022:078A Infocrypt HWDSSL DEVICE - CP" already registered
same device "2022:016C Infocrypt HWDSSL DEVICE - CP" already registered
same device "2022:0172 Infocrypt HWDSSL DEVICE - CP" already registered
same device "2022:0226 Infocrypt HWDSSL DEVICE - CP" already registered
same device "2FB0:078A Infocrypt HWDSSL DEVICE - CP" already registered
same device "2FB0:016C Infocrypt HWDSSL DEVICE - CP" already registered
same device "2FB0:0172 Infocrypt HWDSSL DEVICE - CP" already registered
same device "2FB0:0226 Infocrypt HWDSSL DEVICE - CP" already registered
same device "2A0C:0001 MultiSoft ltd. SCR2 - CP" already registered
same device "23A0:0008 BIFIT ANGARA - CP" already registered
same device "1FC9:7479 ISBC ESMART reader - CP" already registered
device with same VID:PID "2CE4:7479" already exists
same device "04D8:003F zis-group PRIVATE Security System Key" already registered
Почему
Error code:-2146435049 The specified reader is not currently available for use.?
Что мне нужно ещё предоставить? С каким руководством нужно ознакомиться?
1с-отчетность начинает своё руковдство с "Если Вы настроили различные считыватели для КриптоПро CSP, то при создании контейнера закрытого ключа подписи перед Вами появится диалог криптопровайдера, содержащий настройки места хранения контейнера (рис. 1.)."
Как это выполнить в ubuntu в командной строке? Многие руководства указывают на cpconfig, но в 5 нет такой команды.