logo Обзор КриптоПро NGate для защищённого доступа к корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline kedderli  
#1 Оставлено : 16 июля 2019 г. 18:02:32(UTC)
kedderli

Статус: Новичок

Группы: Участники
Зарегистрирован: 16.07.2019(UTC)
Сообщений: 2

Сказал(а) «Спасибо»: 2 раз
Добрый день, возникла проблема при подписи документов 1с в фоновом режиме, сертификат для подписи я получаю, но в нем не все записи.

Вот так выглядит сертификат получаемый в фоновом режиме:

UserPostedImage

Вот так должно быть (получаю сертификат в ручном режиме):

UserPostedImage

Код получения в фоновом режиме:

Рез = Неопределено;
CAPICOM_LOCAL_MACHINE_STORE = 1;
CAPICOM_MY_STORE = "My";
CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;
oStore = Новый COMОбъект("CAdESCOM.Store");
oStore.Open(CAPICOM_LOCAL_MACHINE_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
Для Каждого ТекСертификат Из oStore.Certificates Цикл
ТекОтпечаток = ТекСертификат.Thumbprint;
Если ВРЕГ(ТекОтпечаток) = ВРЕГ(ОтпечатокСтр) Тогда
Рез = ТекСертификат;
Прервать;
КонецЕсли;
КонецЦикла;
oStore.Close();
Возврат Рез;

Код получения в ручном режиме:

Рез = Неопределено;
CAPICOM_CURRENT_USER_STORE = 2;
CAPICOM_MY_STORE = "My";
CAPICOM_STORE_OPEN_READ_ONLY = 0;
oStore = Новый COMОбъект("CAdESCOM.Store");
oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY);
Для Каждого ТекСертификат Из oStore.Certificates Цикл
ТекОтпечаток = ТекСертификат.Thumbprint;
Если ВРЕГ(ТекОтпечаток) = ВРЕГ(ОтпечатокСтр) Тогда
Рез = ТекСертификат;
Прервать;
КонецЕсли;
КонецЦикла;
oStore.Close();
Возврат Рез;

Код для ручного режима не подходит для фонового задания, т.к. не увидит сертификаты пользователей.

Может быть кто нибудь сталкивался с такой проблемой и может что посоветовать?

Отредактировано пользователем 16 июля 2019 г. 18:09:09(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#2 Оставлено : 16 июля 2019 г. 19:46:39(UTC)
Андрей Писарев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 8,343
Мужчина

Сказал «Спасибо»: 292 раз
Поблагодарили: 1168 раз в 921 постах
Здравствуйте.

В вопросе целиком ответ, в коде.
CAPICOM_LOCAL_MACHINE_STORE

Вам необходимо:
1) сертификат
2) установить сертификат в хранилище локального компьютера с автопоиском контейнера

КриптоПРО CSP - Вкладка Общие - щелкнуть: Запустить с правами администратора

далее: Сервис\Установить личный сертификат, выбираете сертификат,
отмечаете опции:
контейнер: "компьютера" и "найти контейнер автоматически"

Пример:
Snimok ehkrana ot 2019-07-16 20-44-55.png (6kb) загружен 5 раз(а).

Отредактировано пользователем 16 июля 2019 г. 19:47:15(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей Писарев за этот пост.
kedderli оставлено 17.07.2019(UTC)
Offline two_oceans  
#3 Оставлено : 17 июля 2019 г. 5:39:23(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 664
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 42 раз
Поблагодарили: 145 раз в 138 постах
Да, похоже на то, что в хранилище компьютера нет связки с контейнером либо от имени пользователя, от которого выполняется программа в фоновом режиме (у нас, например, называется USR1CV82, у Вас возможно виртуальная запись либо система) нет доступа к контейнеру и ключу. Поэтому дополню предыдущий ответ: 1) чтобы контейнеры нашлись в режиме компьютера, они не должны быть в реестре (флешка, токен или виртуальная флешка подойдут), учтите токены работают достаточно медленно. Минус установки в режиме компьютера - служба "распространение сертификатов" может установить сертификат вообще всем пользователям, независимо от того есть у них права на доступ к контейнеру и ключу или нет. 2) для того, чтобы дать доступ к ключу нужно после установки связки зайти в остнастку сертификаты, найти хранилище компьютера, выбрать нужный сертификат - задачи - управление закрытыми ключами - выставить права пользователю.
thanks 1 пользователь поблагодарил two_oceans за этот пост.
kedderli оставлено 17.07.2019(UTC)
Offline kedderli  
#4 Оставлено : 17 июля 2019 г. 9:50:13(UTC)
kedderli

Статус: Новичок

Группы: Участники
Зарегистрирован: 16.07.2019(UTC)
Сообщений: 2

Сказал(а) «Спасибо»: 2 раз
Спасибо большое, все заработало.
Offline Сомятник  
#5 Оставлено : 9 октября 2019 г. 6:04:39(UTC)
Сомятник

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.10.2019(UTC)
Сообщений: 5
Российская Федерация
Откуда: Новосибирск

Сказал(а) «Спасибо»: 1 раз
Здравствуйте друзья.
Появилась необходимость подписать файл. Задача для меня новая и одноразовая, надо сделать настройку. Может у когонибудь есть образцы обработок или хотябы часть модуля, буду весьма благодарен, при необходимости благодарность в виде денежной суммы тоже предполагается.
Всем всех благ!

Вот техзадание:
На прикладном уровне необходимо сформировать файл запроса в приведенных ниже форматах, после чего подписать закрытым ключом Партнера этот запрос в формате CMS/PKCS#7 в DER кодировке. Подписанный XML вкладывается в тело (body) HTTP/POST запроса, с указанием в заголовке сущности content-type:application/octet-stream и направляется по адресу, описанному выше. В ответ формируется подписанный закрытым ключом ответственного лица Бюро отчет с content-type:application/octet-stream. Полученный content необходимо проверить на валидность цифровой подписи с использованием сертификата ответственного лица Бюро. При удачной проверке на выходе получается отчет в формате XML, представленном ниже.
XML-файл запроса/ответа должен иметь кодировку windows-1251.

Отредактировано пользователем 9 октября 2019 г. 6:11:47(UTC)  | Причина: Не указана

Offline two_oceans  
#6 Оставлено : 9 октября 2019 г. 7:10:14(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 664
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 42 раз
Поблагодарили: 145 раз в 138 постах
Добрый день. Не указано каким алгоритмом подписывать (сейчас наиболее распространен гост-2012 256 бит) и отсоединенная ли подпись. По смыслу выходит присоединенная.

Полагаю, как основа именно части про подписание Вам подойдет из темы ниже: код в сообщении 1 с момента "Дальше получаем значение подписи"; код в сообщении 3 пункты 1 или 2. Потом идут уже RawSignature не соответствующие заданию. Отличия от задания следующие: нет считывания из файла и обертки результата в HTTP/POST, формат CADES_BES (немного шире чем чистый CMS/PKCS#7, поэтому половина программ заявляющих CMS/PKCS#7 принимает и CADES_BES тоже), отсоединенная подпись, результат в Base64 кодировке. Доработать: считать из файла (например, через ADODB.Stream для удобства работы с кодировками), поменять два параметра (CADES_BES на PKCS7 и True на False), декодировать из Base64 не должно составить труда. С оберткой в HTTP/POST (через XMLHTTP или через специфичные средства 1с) тоже в основном проблема с кодировками.

https://www.cryptopro.ru...aspx?g=posts&t=16656 примерный код
https://www.cryptopro.ru...&m=106053#post106053 настройка конкретно 1С (для варианта Менеджер криптографии)
thanks 1 пользователь поблагодарил two_oceans за этот пост.
Сомятник оставлено 09.10.2019(UTC)
Offline Сомятник  
#7 Оставлено : 9 октября 2019 г. 8:30:44(UTC)
Сомятник

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.10.2019(UTC)
Сообщений: 5
Российская Федерация
Откуда: Новосибирск

Сказал(а) «Спасибо»: 1 раз
Премного благодарен!

Алгоритмы ЭП, которые использует Бюро: ГОСТ Р 34.11-2012, ГОСТ Р 34.10-2012.

больше информации пока нет.

Автор: two_oceans Перейти к цитате
Добрый день. Не указано каким алгоритмом подписывать (сейчас наиболее распространен гост-2012 256 бит) и отсоединенная ли подпись. По смыслу выходит присоединенная.



Offline Сомятник  
#8 Оставлено : 11 октября 2019 г. 12:20:33(UTC)
Сомятник

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.10.2019(UTC)
Сообщений: 5
Российская Федерация
Откуда: Новосибирск

Сказал(а) «Спасибо»: 1 раз
Здравствуйте.
Может быть ктонибудь сможет написать обработку по вышеописанному алгоритму за оплату?
Надо взять файл с диска, упаковать, подписать, отправить пост запросом, получить ответ, расшифровать.
Файл XML я сформирую сам и читать ответ тоже сам буду, надо только отправить получить.
Можно использовать платные компоненты, тот же Криптопро.
Навалилось много работы, вообще не успеваю.
Благодарю за отзывы.

PS. Из приведенных выше примеров, ни чего не понял )) конфа оооочень древняя, считайте что практически самописанная Бухгалтерия предприятия, редакция 3.0 (3.0.43.116)

Отредактировано пользователем 11 октября 2019 г. 12:29:55(UTC)  | Причина: Не указана

Offline two_oceans  
#9 Оставлено : 11 октября 2019 г. 13:20:16(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 664
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 42 раз
Поблагодарили: 145 раз в 138 постах
Добрый день. Я уже давно не писал для 1с, так что наверно писать обработку не возьмусь, но по предыдущему сообщению надо бы все же уточнить что имеется ввиду под "упаковать" и "расшифровать"?

По предыдущим сообщениям вроде выходило что подпись присоединенная (то есть содержит внутри исходный документ-запрос, а потом такая же подпись ответа проверяется и из нее извлекается (чаще говорят о "снятии подписи" как обертки) документ. Под упаковать и расшифровать Вы имеет именно этот процесс "снятия подписи" или надо архив zip делать и шифровать?

Отредактировано пользователем 11 октября 2019 г. 13:25:25(UTC)  | Причина: Не указана

Offline Сомятник  
#10 Оставлено : 11 октября 2019 г. 13:31:34(UTC)
Сомятник

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.10.2019(UTC)
Сообщений: 5
Российская Федерация
Откуда: Новосибирск

Сказал(а) «Спасибо»: 1 раз
Вот что дословно написано в инструкции:


в переписке со службой поддержки выкроил из них такой комментарий:
требования к подписи и шифрованию файлов описаны в соответствующих форматах: При выгрузке
файл должен быть заархивирован архиватором ZIP, далее подписан и зашифрован средствами криптографической защиты
информации в формате CMS/PKCS#7 в DER кодировке.


Автор: two_oceans Перейти к цитате
Добрый день. Я уже давно не писал для 1с, так что наверно писать обработку не возьмусь, но по предыдущему сообщению надо бы все же уточнить что имеется ввиду под "упаковать" и "расшифровать"?

По предыдущим сообщениям вроде выходило что подпись присоединенная (то есть содержит внутри исходный документ-запрос, а потом такая же подпись ответа проверяется и из нее извлекается (чаще говорят о "снятии подписи" как обертки) документ. Под упаковать и расшифровать Вы имеет именно этот процесс "снятия подписи" или надо архив zip делать и шифровать?



Offline Сомятник  
#11 Оставлено : 11 октября 2019 г. 13:36:18(UTC)
Сомятник

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.10.2019(UTC)
Сообщений: 5
Российская Федерация
Откуда: Новосибирск

Сказал(а) «Спасибо»: 1 раз
Остальные 100 страниц текста содержат описание формата XML
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.