Ошибка при проверке подписи файла doc json

Обновлено: 06.07.2024

Не выполняется строчка:
let sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1);
Ошибка неустановленного корневого сертификата, но он установлен аж в 3 директориив личные с "Доверенные корневые центры сертификации" и "Доверенные лица"
A certificate chain could not be built to a trusted root authority. (0x800B010A)

The text was updated successfully, but these errors were encountered:

pavenkostanislav commented Sep 6, 2017

splincode commented Sep 7, 2017

pavenkostanislav commented Sep 7, 2017

Да спасибо. С тестовой службой подпись создалась, но теперь проблема в проверке её:

splincode commented Sep 7, 2017

В принципе, ответы оставляют на форуме сотрудники КриптоПро, если что пишите сюда решение

Пока нет ответа

но с начала переписки в приципе какая-то подпись создалась и ошибки нет больше.

Вот только эта подпись не проходит проверку в Контуре.Крипто и даже в КриптоПро DSS

splincode commented Sep 7, 2017

Приложите документ и подпись

splincode commented Sep 7, 2017

sign.zip
Вот так лучше всего. не все форматы можно добавлять

Если код подписания выглядит так:

Ключевое отличие тут:

//let byteCharacters: string;
//if (this.crypto.isChromium) // byteCharacters = window.atob(b64Data);
//> else // byteCharacters = Base64.decode(b64Data);
//>

splincode commented Sep 7, 2017

Это рабочая версия? Надо будет добавить код в основной репозиторий, когда появится новая версия, я обязательно вам пришли, чтобы вы сделали pull request

Ну как рабочая. Сертификат проверку не проходит
вырезка из рабочего проекта тут pavenkostanislav/GetingCertificatesList можно посмотреть, но если честно я его не компилил.

splincode commented Sep 7, 2017

подпись не проходит проверку.

Хеш указанного файла:
CB AE CB 61 1C 3B F9 6A 8E B1 63 B3 CE E7 EA D5 05 1F A4 C1 9B EF 15 FB 98 64 1F 3D 0C BB 84 C3

а в p7s прохешировано было что-то "другое":
64 D5 52 BF 80 B9 0E B1 C9 3D 29 83 5D 54 D5 57 0C F4 B0 45 9B 92 D9 79 D9 43 13 05 81 BB 2B FF

  • ASN.1 анализатор выдал 1 предупреждение и 1 ошибку.

позиция:
3300 0: [0] Error: Object has zero length.
3302 15: GeneralizedTime 07/09/2017 07:21:15 GMT

Warning: Further data follows ASN.1 data at position 10798.

Ну для начала спасибо.
Но мне бы больше информации.
Я тем же путём создавал прикреплённую подпись - всё проходит проверку
Ещё ошибку пофиксил:
oSignedData.Content = dataToSign.replace('data:application/pdf;base64,', '');

Доброе время суток, уже близок к усуществению отсоединённой подписи, присоединённая уже получается и проходит проверку на сайте Сервер электронной подписи КриптоПро DSS.
Возможно Вы сможете помочь с решением вопроса: "Отсоединённой подпись не проходит проверку, а присоединённая подпись проходит"

Типовые ошибки при формировании подписи в веб-интерфейсе сервиса подписи.

1.1. Размер переданного файла превышает максимально допустимый размер


1.2. Неперехваченное исключение: Код состояния ответа не указывает на успешное выполнение: 413 (Request entity too large)


Возможные причины возникновения ошибки:
На подпись был передан документ, чей размер превышает заданный в настройках сервисов DSS.

Рекомендуемое решение:
Изменить значения для максимальных размеров документов сервисов DSS, в соответствие с руководством.

2. Неперехваченное исключение: Message: invalid_certificate MessageDetail: Сертификат не найден или недействителен


Диагностика:
Ошибка в «Журналы приложений и служб -> CryptoPro-> DSS-> SignServer-> Admins».

Пример:
Instance Unique Identifier: 1/signserver Source: SignDocumentRequestValidator Message: SignDocumentRequestValidator. Ошибка: invalid_certificate;
Описание: Сертификат не найден или недействителен.;

Возможные причины возникновения ошибки:
- Ошибка при проверке сертификата подписанта на сервере DSS;
- Сертификат подписанта был отозван/приостановлен.

Рекомендуемое решение:
- Обеспечить проверку сертификата подписанта на сервере DSS (путем установки цепочки сертификатов издателей в хранилище локального компьютера сервера DSS);
- Обеспечить проверку сертификата подписанта на сервере DSS на отзыв (путем установки CRL в хранилище «Промежуточные центры сертификации» локального компьютера сервера DSS или обеспечив доступность CRL по ссылкам, указанным в расширении "Точки распространения списков отзыва" сертификата подписанта и цепочки сертификатов издателей);
- Убедиться, что сертификат подписанта не был отозван/приостановлен.

3. При формировании подписи формата CAdES T/XLT1 возвращается ошибка "Произошла ошибка при получении штампа времени. Ошибка: [При попытке отправки запроса возникла ошибка HTTP]. Код: [0xc2100100]"


Возможные причины возникновения ошибки:
С сервера DSS нет сетевой доступности до службы штампов времени (TSP), выбранной при формировании подписи.

Рекомендуемое решение:
Обеспечить сетевую доступность до службы штампов времени с сервера DSS. Затем проверить работоспособность службы, в соответствие с п. 7.2 "ЖТЯИ.00094-01 91 02 Службы УЦ 2.0. КриптоПро TSP Server. Руководство администратора".

4. При формировании подписи формата CAdES XLT1 возвращается ошибка "Произошла ошибка при получении OCSP-ответа. Ошибка: [При попытке отправки запроса возникла ошибка HTTP]. Код: [0xc2110100]"


Возможные причины возникновения ошибки:
С сервера DSS нет сетевой доступности до службы проверки статусов сертификатов (OCSP), адрес которой указан в расширении "Доступ к информации о центрах сертификации" сертификата подписанта.

Рекомендуемое решение:
Обеспечить сетевую доступность до службы проверки статусов сертификатов. Затем проверить работоспособность службы, в соответствие с п. 7.3 "ЖТЯИ.00094-01 91 01 Службы УЦ 2.0. КриптоПро OCSP Server. Руководство администратора".

5. При формировании подписи формата CAdES T/XLT1 возвращается ошибка "Произошла ошибка при формировании CAdES подписи. Ошибка: [Группа или ресурс не находятся в нужном состоянии для выполнения требуемой операции]. Код: [0x8007139f]"


Возможные причины возникновения ошибки:
Остановлена служба штампов времени (TSP)/проверки статусов сертификатов (OCSP).

Рекомендуемое решение:
Запустить службы на стороне сервера "КриптоПро Службы УЦ". Затем проверить работоспособность службы штампов времени, в соответствие с п. 7.2 "ЖТЯИ.00094-01 91 02 Службы УЦ 2.0. КриптоПро TSP Server. Руководство администратора" и работоспособность службы проверки статусов сертификатов, в соответствие с п. 7.3 "ЖТЯИ.00094-01 91 01 Службы УЦ 2.0. КриптоПро OCSP Server. Руководство администратора".

6. При загрузке документа для подписи возвращается ошибка "Message: Authorization has been denied for this request"


Диагностика:
Ошибки в «Журналы приложений и служб -> CryptoPro-> DSS-> DocumentStore-> Admins».

Б) Instance Unique Identifier: 1/documentstore] Source: Microsoft.Owin.Security.OAuth.OAuthBearerAuthenticationMiddleware Message: Authentication failed
System.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException: IDX10505: Unable to validate signature. The 'Delegate' specified on TokenValidationParameters, returned a null SecurityKey.

Возможные причины возникновения ошибки:
- На сервисе обработки документов не настроены отношения доверия с центром идентификации;
- Истек срок действия сервисного сертификата сервиса обработки документов.

Рекомендуемое решение:
- Запросить отпечаток сервисного сертификата ЦИ: $idp_cert = (Get-DssStsProperties).ServiceCertificate
- Указать отпечаток сервисного сертификата ЦИ на сервисе обработки документов: Add-DssDocumentStoreClaimsProviderTrust -IssuerName realsts -Thumbprint $idp_cert
Примечание: если при выполнении второго командлета в Powershell возникла ошибка "Доверенный издатель с именем realsts уже добавлен в коллекцию" - необходимо выполнить командлет: Set-DssDocumentStoreClaimsProviderTrust -IssuerName realsts -NewThumbprint $idp_cert
- Проверить срок действия сервисного сертификата сервиса обработки документов. Если срок действия истек - необходимо перевыпустить его и скорректировать настройки в соответствие с руководством;
- Перезагрузить пулы приложений центра идентификации и сервиса обработки документов, выполнив командлеты: Restart-DssStsInstance и Restart-DssDocumentStoreInstance.

7. При загрузке документа для подписи возвращается ошибка "Неперехваченное исключение: Message: An error has occured"


Диагностика:
Ошибка в «Журналы приложений и служб -> CryptoPro-> DSS-> SignServer-> Admins».

Возможные причины возникновения ошибки:
- На сервисе обработки документов не настроены отношения доверия с сервисом подписи;
- Истек срок действия сервисного сертификата сервиса обработки документов.

Рекомендуемое решение:
- Запросить отпечаток сервисного сертификата сервиса подписи: $ss_cert = (Get-DssProperties).ServiceCertificate
- Указать отпечаток сервисного сертификата сервиса подписи в настройках сервиса обработки документов: Add-DssDocumentStoreClaimsProviderTrust -IssuerName signserver -Thumbprint $ss_cert
Примечание: если при выполнении второго командлета в Powershell возникла ошибка "Доверенный издатель с именем signserver уже добавлен в коллекцию" - необходимо выполнить командлет: Set-DssDocumentStoreClaimsProviderTrust -IssuerName signserver -NewThumbprint $ss_cert
- Проверить срок действия сервисного сертификата сервиса обработки документов. Если срок действия истек - необходимо перевыпустить его и скорректировать настройки в соответствие с руководством;
- Перезагрузить пулы приложений сервиса подписи и сервиса обработки документов, выполнив командлеты: Restart-DssSignServerInstance и Restart-DssDocumentStoreInstance.

Мы предлагаем мощные инструменты для решения ваших задач

Интеграция Sign.Me в сторонние сервисы осуществляется
значительно проще существующих решений. Ознакомьтесь
с документацией к нашим API, чтобы убедиться в этом
самостоятельно.


1. Как пользоваться API

API предоставляет две возможности – подпись и проверка файла. В любом случае необходимо сформировать POST-запрос. Для использования функций необходимо зарегистрировать свой сайт, с которого будет приходить запрос, в нашей системе и получить код доступа. Далее подробнее о каждом:

1.1. Подпись файла

Необходимо сделать запрос к сайту подписи по url:

JSON пакет должен быть отправлен в виде строки:

В ответ приходит добавочная часть url, которую нужно открыть в браузере или iframe текущего окна браузера в виде

1.2. Проверка файла

Аналогично подписи, необходимо сделать POST запрос по url:

отправив JSON пакет:

В ответ приходит JSON пакет, содержащий массив, в котором есть вся необходимая информация о подписавших проверяемый файл пользователях:

либо массив с 0 значением количества подписей, если файл не подписан:

Подробнее оба действия можно рассмотреть в примерах.

1.3. Проверка файла через iframe

Необходимо сделать POST запрос на url:

Достаточно прислать хеш файла, система вернет сгенерированный адрес, открыв который в iframe можно увидеть перечень подписавших этот файл.

Запрос должен быть следующего вида:

По этому адресу iframe будет доступен для открытия только один раз. Для повторного открытия необходимо повторить процедуру.

1.4. Быстрая проверка факта подписания запроса

Для проверки, подписан ли запрос из пункта 1.1, необходимо открыть GET запросом адрес

Ответ json, status: “0” - не подписан, “1” - подписан, “2” - отклонен; “comment” - причина отклонения, если есть

error 1: no file Означает, что после раскодирования JSON пакета в нем не обнаружено элемента массива с ключем filet
error 2: no filename Означает, что после раскодирования JSON пакета в нем не обнаружено элемента массива с ключем fname
error 3: wrong file Означает, что пришедшее в массиве содержимое по ключу filet не получается раскодировать base64_decode
error 4: wrong json Означает, что не получается раскодировать JSON пакет, пришедший в POST запросе по ключу rfile
error 5: cant create file Не получается записать файл на сервер, возможно проблема в имени файла, иначе свяжитесь с разработчиками
error 6: cant create request Не получается создать запрос на подпись файла на сервере – в любом случае свяжитесь с разработчиками

error 1: wrong base64 Означает, что пришедшее в массиве содержимое по ключу filet не получается раскодировать base64_decode
error 2: wrong md5 Не получается вычислить md5 от раскодированного файла на стороне сервера, свяжитесь с разработчиками
error 3: wrong file Означает, что пришедшее в массиве содержимое по ключу filet не получается раскодировать base64_decode
error 4: wrong hash Означает, что пришедшее в пакете значение md5 не совпадает с вычисленным на сервере
error 5: no hash Означает, что значение md5 не пришло на сторону сервера
error 6: wrong json Означает, что не получается раскодировать JSON пакет, пришедший в POST запросе по ключу rfile

*Во всех действиях ошибка error 0: wrong method означает, что необходимо использовать POST запрос

Ответ в виде строки.
В случае успеха:

В случае ошибки:

error 0: POST используйте POST error 1: no phone or ogrn нет ни телефона пользователя, ни ОГРН error 2: no user нет пользователя с таким телефоном error 3: no company нет компании с таким ОГРН error 4: wrong type неправильный get_all_certs error 5: no keys нет ключей с искомыми параметрами (активные и т.д.)

server_name = “sign.me” для официальной регистрации
“sandbox.sign.me” для тестов (ключи доступа будут разные)

В ответ придет строка, при успешном создании заявки – json

В случае ошибки:

error 0: POST используйте POST error 1: wrong json неправильный формат пакета error 2: wrong key неправильный ключ доступа error 3: wrong data неизвестная ошибка в данных, заявка не создалась error 4: wrong data on key “k”: “e” ошибка данных типа e в ключе k (чаще всего неправильный формат или недопустимые символы) error 5: key not created не создался сертификат, проблема на нашей стороне, сообщите по контактам

Предпроверка

Перед созданием заявки можно проверить по трем параметрам:
телефон, email, СНИЛС
создавалась ли уже такая заявка

В ответ придет массив, если по параметру будет найдена заявка, то содержащий

Активация

Можно активировать только те заявки, которые созданы этим же апи ключом.
Пользователю будут высланы данные для активации аккаунта по его почте и телефону.

С такой ошибкой не сталкивался.

Пример Добавление или удаление сайтов в списке доверенных узлов КриптоПро ЭЦП Browser Plug-in [ Нажмите, чтобы развернуть ] [ Нажмите, чтобы скрыть ] Все эти настройки сделаны. Спасибо. Пробовали в браузерах и Спутник и Chromium..

Если это не ошибка связанная с работой самого сайта ЕИС закупки
можно проверить варианты:

1) Проверить просто файл с именем без пробелов и с расширением txt даёт подписать?
2) Можно запаковать файл в архив с именем латиницей без пробелов.
3) Проверьте корректность установки корневых сертификатов ФК

Они должны быть установлены в хранилище сертификатов - Локальный компьютер
В Доверенные корневые центры сертификации (Root):
"Минкомсвязь России" Действующий по
В Промежуточные центры сертификации (CA):
"Федеральное казначейство" Действующий по
"Федеральное казначейство" Действующий по
"Федеральное казначейство" Действующий по

Просто встречался со случаями когда часть сертификатов установлена в пользователя,
какие то в локальный компьютер или например вместо промежуточных центров сертификации
"Федеральное казначейство" установлен в Корневые сертификаты,
появляются непонятные ошибки при подписании.
Лучше их удалить и установить правильно

Я бы проверил скопировал контейнер на чистую флешку через КриптоПРО и новый контейнер создал без пароля.
Вынуть флешку со старым контейнером из ПК
Установил сертификат пользователя в новый контейнер, перезайти в браузер и проверить подписание.

5) Ещё, на некоторых сайтах бывают проблемы с сохранёнными паролями в КриптоПРО
Нужно удалить сохранённые пароли, Перед удалением запомненных паролей, желательно их вспомнить
и перезайти в браузер, что бы при входе в личный кабинет с флешки или рутокена запрашивался пароль.

Удаление сохранённых паролей в КриптоПРО
КриптоПРО CSP - вкладка Сервис
[ Удалить запомненные пароли . ]

Удалить все запомненные пароли закрытых ключей:
[v] Пользователя

Читайте также: