Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Честный Знак: Не пройдена проверка подписи.

Честный Знак: Не пройдена проверка подписи.
Я
   Megas
 
17.06.20 - 16:43
Здравствуйте.
Пробую по API в Честный Знак передать информацию по обуви.

Раньше была другая подпись, которая на днях истекла, и с ней документ передавался нормально.
Теперь новая актуальная подпись, и например Документы EDI ей подписываются и принимаются нормально, а вот ЧЗ не хочет её нормально воспринимать.
Получаю TOKEN, и тут подпись работает,  но дальше когда я подписываю документ и отправляю, мне пишет: Не пройдена проверка подписи,  при этом через Web интерфейс(браузер) подписывается нормально.

Кто знает с чем может быть связана пробемма?
   D_E_S_131
 
1 - 17.06.20 - 17:09
В ЛК для пользователя добавляли новый сертификат под новую подпись?
   Megas
 
2 - 17.06.20 - 17:53
(1) Сейчас гляну =) Спасибо
   spectre1978
 
3 - 17.06.20 - 17:54
Сертификат нужно отправить в ту контору, которая будет проверять. Иначе она никак не поверит.
   Megas
 
4 - 17.06.20 - 18:05
(3) Это что означает?
Через Веб интерфейс заходит.
В пользователях указан какойто сертификат но там странные даты. срока действия 03.01.51681 - 29.03.52932
Когда нажал добавить и указал новый сертификат, То мне сказало что он уже зарегестрирован
   spectre1978
 
5 - 17.06.20 - 18:24
(4) это значит, что когда вы получили новую подпись, то ее сертификат нужно тем или иным способом донести до конторы, которая ее проверяет. В ЛК загрузить или по почте отправить или ещё как-то, но если его у них не будет - проверку они сделать не смогут.
   Megas
 
6 - 17.06.20 - 18:36
(5) У меня 1 пользователь, если пытаюсь добавить ещё и выбираю новый "Сертификат", То пишет - данный сертификат уже зарегистрирован.
   vovastar
 
7 - 17.06.20 - 18:42
(5) по почте ЭЦП отправить? Вы зачем такое советуете?
   lodger
 
8 - 17.06.20 - 18:51
(0) тут только техпод ЧЗ поможет. очередной глюк у них.
   spectre1978
 
9 - 17.06.20 - 18:51
(7) сам сертификат без закрытого ключа - без проблем. Ничего страшного в этом нет.
   spectre1978
 
10 - 17.06.20 - 18:52
(5) напишите в поддержку, возможно, у них ЛК сломался и надо чтобы сотрудник ручками прописал сертификат в систему.
   Гость из Мариуполя
 
11 - 17.06.20 - 19:07
(5) в нормальных системах сертификат доносится автоматически , поскольку автоматически прицеплен к подписанному документу.
А это какая-то недоразвитая система, в которой сертификат нужно посылать отдельно или отдельно регистрировать в ЛК.
К примеру, в налоговую или в ФСС я никакой сертификат специально отдельно никуда не отправляю.
Подписываю отчетность или ЭЛН и фьють. И ведь как-то принимают :)
Налоговая, значится, может из подписанного документа извлечь сертификат и проверить его,  а честный знак, значится, не может. Пусть сходят в ИФНС на стажировку.


(7) вован, ты не поверишь, но когда ты кому-то отсылаешь любой док, подписанный ЭЦП, тем самым ты отсылаешь свой сертификат. :)
   vovastar
 
12 - 17.06.20 - 19:16
(11) Да я это прекрасно знаю. Не до конца прочитал в суть отправки чего то там по электронке.
Просто не думаю, чтобы в ЧЗ операторы ручками сертификаты правили у себя. Если каждый им начнет так сертификаты отсылать чтобы они у себя в системе их регистрировали, то смысл этой всей автоматизации?
   vovastar
 
13 - 17.06.20 - 19:19
+(12) чем то напоминает в этом Сбербанк АСТ, там такая же муть.
   NorthWind
 
14 - 17.06.20 - 19:29
(11) они все работают не напрямую, а через оператора, который, собственно, обычно и выписывает вам ЭЦП на год после оплаты Соответственно, сертификаты ваши у оператора есть еще до того как вы отправите первое письмо. И если вы без предупреждения подпишете отчет подписью, выданной другим УЦ и отправите доки в налоговую, скорее всего, оператор вам отпишет болт.
То же самое банк-клиент - ключи всегда выписываются запросом через банк, по-другому не предусмотрено.
А операторы того же EDI и Честный знак требуют, чтобы перед началом обмена вы им показали сертификат.
   NorthWind
 
15 - 17.06.20 - 19:32
кстати, из всех этих богоугодных заведений только ФСС позволяет обмен напрямую и они да, удовлетворяются тем сертификатом, который в письме. Дополнительно им высылать не надо.
   vovastar
 
16 - 17.06.20 - 19:33
(14) ну почему? Например, при входе в личный кабинет налогоплательщика я просто показываю свой сертификат. А например Сбербанк АСТ, требует помимо этого, хранения моего сертификата у себя на сервере.
   NorthWind
 
17 - 17.06.20 - 19:34
(16) через ЛКН ЮЛ отчетность отправлять нельзя. Там документооборот не предусмотрен никакой. Максимум выписку можно запросить, по-моему, так.
   vovastar
 
18 - 17.06.20 - 19:36
(17) ну если только так. То может они и правы.
   Гость из Мариуполя
 
19 - 17.06.20 - 22:09
А что оператор? сертификат у оператора и сертификат в ИФНС - это совершенно разные места.
Оператор НЕ регистрирует наши сертификаты в налоговой и не исправляет нашу ЭЦП на свою.
Налоговая получает отчеты, подписанные нашим ЭЦП, а не оператора.
Равно как и мы получаем протокол, подписанный ЭЦП налоговой.

А оператор всего лишь квитирует получение и отправку.

Да, у оператора есть наши сертификаты изначально. А у налоговой - нет.
А ФСС вообще может обходиться без оператора.
Так что оператор - это всего лишь передаточное звено, но никак не регистратор наших сертификатов в налоговой.  А то, что он якобы удостоверяет нашу личность - так в самом сертификате и указаны и корневые и промежуточные удостоверяющие центры сертификации.

И помимо ФСС куча сервисов так же работает. Те же госуслуги. Никто что, не пользовался госуслугами под ЭЦП учреждения? Та же ГИС ГМП.
Да и налоговая ведь выписку ЕГРЮЛ и прочий обмен через ЛК тоже делает без участия оператора, но с использованием ЭЦП. И, кстати, почему тут говорят только про  выписку? А ККТ что, не через ЛК, в на бумажке в налоговую носите?
   NorthWind
 
20 - 18.06.20 - 07:36
(19) взаимоотношений оператора с ФНС я лично точно не знаю и поэтому не могу утверждать, передает он сертификаты или не передает. Для меня достаточно того что он обычно сам является УЦ и генерирует подписи, т.е. при необходимости у него есть не то что сертификаты, а даже и закрытые ключи.
Сервисов работает много, но мало кто таким образом занимается пакетным документооборотом. ФСС, кажется, единственный, у кого есть апи и кому можно скидывать отчеты и больничные в промышленных количествах. Разного рода личники - не совсем то.
Регистрация ККТ - это разовая операция, не документооборот. А вот работа ККТ - пример как раз обратный. Мы обязательно предъявляем данные ККТ и данные ФН каждый год (или три). И дальше в процессе работы ничего менять не можем. Нельзя, например, свой ФН вставить в другую кассу взамен вышедшей из строя.
Так что выходит, что в общем-то почти везде, где есть поток документов, есть предварительная загрузка своих идентификационных данных на ресурсы уполномоченных организаций.
   Megas
 
21 - 18.06.20 - 12:35
Решил.
То ли они проверку какую добавили, или переделали что то.Поменял параметры при подписи по последнему руководству и всё стало подписываться.
   VitShvets
 
22 - 19.06.20 - 11:38
(21) А не поделитесь куском кода или примером, как документы ЧЗ отправляете? Подключаюсь к ЧЗ используя CAdESCOM.*:

Токен = comSignedData.SignCades(comCPSigner, 1, Ложь, );// comSignedData это CAdESCOM.CadesSignedData

Токен получаю нормально, документы входящие забираю. А исходящие не создаются. Меня люто бомбит с поведения их системы - вызываю сервис, возвращается честный идентификатор нового документа, ошибок нет. Но и документа в ЛК тоже нет. Есть у меня подозрение, что это что-то из за подписи, как-то криво я её получаю...

Конфа древняя КА. В поддержку ЧЗ написал, неделю назад, молчат как рыба об лёд.
   VitShvets
 
23 - 19.06.20 - 16:52
   Megas
 
24 - 19.06.20 - 16:54
(22)
ВашНовыйСгенерированныйТокен = ТекущийТоккен;
    
    DocumentType = "LP_SHIP_GOODS";                      // LP_SHIP_RECEIPT

    //АдресHTTP = "/api/v3/lk/documents/create?pg=shoes";

    АдресHTTP = "/api/v3/lk/documents/shipment/create";
    
    
    // Получить случайные данные.

    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "application/json");
    Заголовки.Вставить("Authorization", "Bearer " + ВашНовыйСгенерированныйТокен);

bDetached     = Ложь;
    sThumbprint = "aa aa aa aa aa aa aa aa aa aa aa 64 ce aa 8c 72 2e fd d5 28";// Тут хеш отпечаток от подписи,  что б найти нужную

    СтрокаВБазе = УбратьСимволы1013(Base64Строка( ПолучитьДвоичныеДанныеИзСтроки(СтруктурированныйJSON)));
    
    //ПодписанныеДанные = ПодписатьТекст(СтруктурированныйJSON, sThumbprint, bDetached, 1);

       ПодписанныеДанные = ПодписатьТекст(СтрокаВБазе, sThumbprint, bDetached, 1);

    
    
    // обертка //

    ПакетДанных    = Новый Соответствие;    
    //ПакетДанных.Вставить("product_document", УбратьСимволы1013(Base64Строка( ПолучитьДвоичныеДанныеИзСтроки(СтруктурированныйJSON))));

    ПакетДанных.Вставить("product_document", СтрокаВБазе);
    ПакетДанных.Вставить("document_format", "MANUAL");
    ПакетДанных.Вставить("type", DocumentType);
//    ПакетДанных.Вставить("signature", ПодписатьЭЦПЧерезСОМОбъекты(СтруктурированныйJSON, Ложь, Истина));

    ПакетДанных.Вставить("signature", ПодписанныеДанные);
    
    СтруктурированныйJSON = РаботаСФорматомJSON.ЗаписатьJSON(ПакетДанных);

            
    Соединение = Новый HTTPСоединение(Сервер, 443, , , , , Новый ЗащищенноеСоединениеOpenSSL);
    Запрос = Новый HTTPЗапрос(АдресHTTP, Заголовки);

    Запрос.УстановитьТелоИзСтроки(СтруктурированныйJSON);
    
    Попытка                    
        Ответ = Соединение.ОтправитьДляОбработки(Запрос);
        ТекстОтвета = Ответ.ПолучитьТелоКакСтроку();
    Исключение
        Сообщить(ОписаниеОшибки());                                              
        Соединение = Неопределено;
        Возврат ;
    КонецПопытки;       
    
    
    Если Ответ.КодСостояния = 200 тогда
        РазборОтвета = РаботаСФорматомJSON.ПрочитатьJSON(ТекстОтвета);
        ПоказатьJSON(РазборОтвета)
    КонецЕсли;
    JsonText = ТекстОтвета; 
    Сообщить( ТекстОтвета );



// sThumbprint - отпечаток сертификата, используемого для подписи; строка,

// представляющая отпечаток в шестнадцатеричном виде
// пример 195934d72dcdf69149901d6632aca4562d8806d8

// ТекстДляПодписи должен быть в Base64
// bDetached - Истина/Ложь - откреплённая(для подписаниядокументов)/прикреплённая(для получения токена авторизации) подпись

Функция ПодписатьТекст(ТекстДляПодписи, sThumbprint, bDetached, CADESCOM_BASE64_TO_BINARY = 0 )
//    CADESCOM_BASE64_TO_BINARY = 0; // Входные данные пришли в Base64

    CADESCOM_CADES_TYPE = 1;// Тип усовершенствованной подписи

    CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;// Атрибут штампа времени подписи

    oSigner = Новый COMОбъект("CAdESCOM.CPSigner");
    // Объект, задающий параметры создания и содержащий информацию об усовершенствованной подписи.

    oSigner.Certificate = ПолучитьСертификатПоОтпечатку(sThumbprint);
    oSigningTimeAttr = Новый COMОбъект("CAdESCOM.CPAttribute");
    oSigningTimeAttr.Name = CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME;
    oSigningTimeAttr.Value = ТекущаяДата();
    oSigner.AuthenticatedAttributes2.Add(oSigningTimeAttr);
    ТекстДляПодписи = СокрЛП(ТекстДляПодписи);
    oSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData");
    // Объект CadesSignedData предоставляет свойства и методы для работы с усовершенствованной подписью.

    oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
    oSignedData.Content = СокрЛП(ТекстДляПодписи);
    EncodingType = 0;
    sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_TYPE,
    bDetached, EncodingType);
    // Метод добавляет к сообщению усовершенствованную подпись.

    Возврат sSignedMessage;// Подпись в формате Base64

КонецФункции
//Отпечаток - строка HEX

Функция ПолучитьСертификатПоОтпечатку(ОтпечатокСтр)
    Рез = Неопределено;// Найденный сертификат (Com-объект)

    CAPICOM_CURRENT_USER_STORE = 2;
    //2 - Искать сертификат в ветке "Личное" хранилища.

    CAPICOM_MY_STORE = "My";
    // Указываем, что ветку "Личное" берем из хранилища текущего пользователя

    CAPICOM_STORE_OPEN_READ_ONLY = 0;// Открыть хранилище только на чтение

    oStore = Новый COMОбъект("CAdESCOM.Store");// Объект описывает хранилище сертификатов 182

    oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
    CAPICOM_STORE_OPEN_READ_ONLY);// Открыть хранилище сертификатов

    // 1 вариант: поиск сертификата по отпечатку

    CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;
    Certificates = oStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH,
    ОтпечатокСтр);
    Рез = Certificates.Item(1);
    //2 вариант: обходом по коллекции и сравнение с отпечатком

    //Для Каждого ТекСертификат Из oStore.Certificates Цикл

    //ТекОтпечаток = ТекСертификат.Thumbprint; // возвращается отпечаток вшестнадцатеричном виде

    //Если ВРЕГ(ТекОтпечаток) = ВРЕГ(ОтпечатокСтр) Тогда //Рез = ТекСертификат;

    //Прервать;

    //КонецЕсли;

    //КонецЦикла;

    oStore.Close();// Закрыть хранилище сертификатов и освободить объект 61

    Возврат Рез;
КонецФункции

Надеюсь помог
   Megas
 
25 - 19.06.20 - 16:57
(23) У меня к тому же 82 поэтому функции Base64Строка( ПолучитьДвоичныеДанныеИзСтроки()) - самописные - в 83 это проще =)
и
Функция УбратьСимволы1013(Строка) Экспорт
    Возврат СтрЗаменить(СтрЗаменить(Строка, Символы.ПС, ""), Символы.ВК, "");// Ещё бывают символы "77u/", при необходимости удалять и их.

КонецФункции
   marty0701
 
26 - 19.06.20 - 18:08
Можно чуть подробнее, где именно надо обновить сведения о сертификате, у нас закончился 18 числа, сегодня ловим какие-то ошибки невнятные при передаче данных в ЧЗ. УТ 11.4, на старой подписи всё работало, новую установили, 1с ее видит, проверку проходит, но оформить приемку товаров, например, не удаётся.
   Jonny992
 
27 - 05.08.20 - 15:51
(26) Марти, напиши свой тг пожалуйста, есть пару вопрос,если нетрудно !
   Megas
 
28 - 06.08.20 - 13:46
(26) В общем нечего не надо обновлять.
Вы что то делаете не так, как я понял ЧЗ ужесточил проверку подписанных документов.
   Krio77
 
29 - 16.10.20 - 16:06
(21) Подскажите в чем проблема то была?
столкнулся с точно такой же ситуацией поменяли ЭЦП и ошибка не пройдена проверка подписи.
при чем обработка выгрузки документов в ЧЗ по API одна для 9 ИП на восьми работает все ок, а на одном ИП с новой ЭЦП нет.
   Garykom
 
30 - 16.10.20 - 16:15
(29) а вы новую ЭП в ЛК ЧЗ добавили?
 
 Рекламное место пустует
   Krio77
 
31 - 16.10.20 - 16:18
(30) эм )) а как ? у меня ИП, редактировать единственного пользователя не дает, и нового не дает добавить пишет для ИП недоступно добавление пользователей
   Krio77
 
32 - 16.10.20 - 16:20
(31) тем более на прошлой неделе меняли тоже ЭЦП у трех ИП они работают все ок, не было такой проблемы, правда у них другой центр сертификации для ЭЦП
   Garykom
 
33 - 16.10.20 - 16:21
(31) замену/восстановление можно делать старый сертификат подсовываешь и новый
   Garykom
 
34 - 16.10.20 - 16:21
(33)+ Хотя если в ЛК заходит с этой ЭП то трабла в чем то ином


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.