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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline CryptoUser2019  
#1 Оставлено : 1 августа 2019 г. 9:11:45(UTC)
CryptoUser2019

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Здравствуйте!

При переходе на УЦ2.0 столкнулись с проблемой, что в отличие от УЦ1.5 изменился формат запроса на постоянный сертификат.
Раньше наше серверное приложение могло лишь переслать запрос пользователя, подписанный его же временным сертификатом. Теперь необходима еще и подпись сервера.
В одной из веток обещали исправить это в УЦ2.0, но по всей видимости так и не сделали.

В связи с чем просьба сообщить требования к формату запроса, а если можно, то и предоставить пример запроса, который подписан и пользователем и серверным приложением до передачи его в УЦ.

Спасибо!
Offline Санчир Момолдаев  
#2 Оставлено : 9 августа 2019 г. 22:32:37(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 15 раз в 15 постах
Добрый день!
CMS с подписью кто одобрил запрос (CMS с подписью кто разместил запрос (data))

"подпись кто одобрил запрос" у этого пользователя должна быть дополнительно установлена галочка "передача запроса" в настройках безопасности пользователя в консоли ЦР
Техническую поддержку оказываем тут
Наша база знаний
Offline Захар Тихонов  
#3 Оставлено : 12 августа 2019 г. 8:16:13(UTC)
Захар Тихонов

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

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 2,231
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 22 раз
Поблагодарили: 358 раз в 345 постах
Автор: CryptoUser2019 Перейти к цитате
Здравствуйте!

При переходе на УЦ2.0 столкнулись с проблемой, что в отличие от УЦ1.5 изменился формат запроса на постоянный сертификат.
Раньше наше серверное приложение могло лишь переслать запрос пользователя, подписанный его же временным сертификатом. Теперь необходима еще и подпись сервера.
В одной из веток обещали исправить это в УЦ2.0, но по всей видимости так и не сделали.


Начиная со сборки 2.0.6568.0000 от 19.12.2017, такой функционал появился https://www.cryptopro.ru...ts&m=86964#post86964
Техническую поддержку оказываем тут.
Наша база знаний.
Offline CryptoUser2019  
#4 Оставлено : 12 августа 2019 г. 10:03:49(UTC)
CryptoUser2019

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Автор: Захар Тихонов Перейти к цитате
Автор: CryptoUser2019 Перейти к цитате
Здравствуйте!

При переходе на УЦ2.0 столкнулись с проблемой, что в отличие от УЦ1.5 изменился формат запроса на постоянный сертификат.
Раньше наше серверное приложение могло лишь переслать запрос пользователя, подписанный его же временным сертификатом. Теперь необходима еще и подпись сервера.
В одной из веток обещали исправить это в УЦ2.0, но по всей видимости так и не сделали.


Начиная со сборки 2.0.6568.0000 от 19.12.2017, такой функционал появился https://www.cryptopro.ru...ts&m=86964#post86964


Спасибо за информацию!
У нас используется более старшая версия: 2.0.6904.0000. Но по всей вероятности там этот функционал так и не работает... У вас есть возможность проверить это?
Получаем вот такую ошибку: "Сообщение об ошибке: (10): Пользователь, подписавший запрос, не совпадает с пользователем, передавшим изменение."


Автор: Санчир Момолдаев Перейти к цитате
Добрый день!
CMS с подписью кто одобрил запрос (CMS с подписью кто разместил запрос (data))

"подпись кто одобрил запрос" у этого пользователя должна быть дополнительно установлена галочка "передача запроса" в настройках безопасности пользователя в консоли ЦР

Используя пример по подписанию CMS из поставки я получаю нелепую структуру самого запроса (нет вложенности). Из-за чего запрос пользователя попадает в структуре УЦ как запрос от самого сервера.
Offline Захар Тихонов  
#5 Оставлено : 12 августа 2019 г. 10:06:05(UTC)
Захар Тихонов

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

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 2,231
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 22 раз
Поблагодарили: 358 раз в 345 постах
Автор: CryptoUser2019 Перейти к цитате
Автор: Захар Тихонов Перейти к цитате
Автор: CryptoUser2019 Перейти к цитате
Здравствуйте!

При переходе на УЦ2.0 столкнулись с проблемой, что в отличие от УЦ1.5 изменился формат запроса на постоянный сертификат.
Раньше наше серверное приложение могло лишь переслать запрос пользователя, подписанный его же временным сертификатом. Теперь необходима еще и подпись сервера.
В одной из веток обещали исправить это в УЦ2.0, но по всей видимости так и не сделали.


Начиная со сборки 2.0.6568.0000 от 19.12.2017, такой функционал появился https://www.cryptopro.ru...ts&m=86964#post86964


Спасибо за информацию!
У нас используется более старшая версия: 2.0.6904.0000. Но по всей вероятности там этот функционал так и не работает... У вас есть возможность проверить это?
Получаем вот такую ошибку: "Сообщение об ошибке: (10): Пользователь, подписавший запрос, не совпадает с пользователем, передавшим изменение."



Приложите подписанный запрос.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline CryptoUser2019  
#6 Оставлено : 22 августа 2019 г. 11:11:34(UTC)
CryptoUser2019

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Уточню информацию:
1. Используется REST-API УЦ 2.0
2. Права "Передача запросов" даны на папку. В этой папке находится технологический пользователь, который и осуществляет передачу запроса пользователя в УЦ, предварительно авторизовавшись через свой сертификат. Наследование для права "Передача запросов" также установлено. Экран настройки в аттаче.
3. Пример запроса строго в личку направил.

Prava.png (135kb) загружен 6 раз(а).
Offline Захар Тихонов  
#7 Оставлено : 22 августа 2019 г. 11:16:11(UTC)
Захар Тихонов

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

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 2,231
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 22 раз
Поблагодарили: 358 раз в 345 постах
Автор: CryptoUser2019 Перейти к цитате
Уточню информацию:
1. Используется REST-API УЦ 2.0
2. Права "Передача запросов" даны на папку. В этой папке находится технологический пользователь, который и осуществляет передачу запроса пользователя в УЦ, предварительно авторизовавшись через свой сертификат. Наследование для права "Передача запросов" также установлено. Экран настройки в аттаче.
3. Пример запроса строго в личку направил.

Prava.png (135kb) загружен 6 раз(а).


Видимо с вашим коллегой общался в другой ветке (приложили тот запрос).
Рекомендации даны здесь
Техническую поддержку оказываем тут.
Наша база знаний.
Offline CryptoUser2019  
#8 Оставлено : 22 августа 2019 г. 11:40:31(UTC)
CryptoUser2019

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Автор: Захар Тихонов Перейти к цитате
Автор: CryptoUser2019 Перейти к цитате
Уточню информацию:
1. Используется REST-API УЦ 2.0
2. Права "Передача запросов" даны на папку. В этой папке находится технологический пользователь, который и осуществляет передачу запроса пользователя в УЦ, предварительно авторизовавшись через свой сертификат. Наследование для права "Передача запросов" также установлено. Экран настройки в аттаче.
3. Пример запроса строго в личку направил.

Prava.png (135kb) загружен 6 раз(а).


Видимо с вашим коллегой общался в другой ветке (приложили тот запрос).
Рекомендации даны здесь



Как раз интересует 2й пункт вашей рекомендации.
Он как раз не работает. На это и хочу обратить ваше внимание.

Другие тоже попробуем, но хотелось бы остановиться на 2м, так как он все же заявлен.
Offline Захар Тихонов  
#9 Оставлено : 22 августа 2019 г. 11:53:22(UTC)
Захар Тихонов

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

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 2,231
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 22 раз
Поблагодарили: 358 раз в 345 постах
Вы подпись сервера (вторую) не устанавливаете?
Приложите лог с ЦР согласно https://support.cryptopr...pomoshhju-svctraceviewer (т.е. воспоизведите ошибку и приложите)
Техническую поддержку оказываем тут.
Наша база знаний.
Offline CryptoUser2019  
#10 Оставлено : 22 августа 2019 г. 11:58:23(UTC)
CryptoUser2019

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Автор: Захар Тихонов Перейти к цитате
Вы подпись сервера (вторую) не устанавливаете?
Приложите лог с ЦР согласно https://support.cryptopr...pomoshhju-svctraceviewer (т.е. воспоизведите ошибку и приложите)


Нет. Рассматриваем вариант без подписи сервером, как это было в УЦ 1.5.
Схема следующая:
1. Пользователь создает запроса на постоянный сертификат.
2. Пользователь подписывает запрос своим временным сертификатом.
3. Сертификат идет в приложение.
4. Приложение просто установив TLS по своему собственному сертификату передает подписанный пользователм запрос из пунка 2 в УЦ.
5. Права сертификата приложения есть на пересылку.

Это вроде бы полностью соответствует вашему пункту 2. Разве нет?
Offline Захар Тихонов  
#11 Оставлено : 22 августа 2019 г. 12:25:26(UTC)
Захар Тихонов

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

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 2,231
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 22 раз
Поблагодарили: 358 раз в 345 постах
лог с ЦР приложите.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline CryptoUser2019  
#12 Оставлено : 22 августа 2019 г. 17:38:20(UTC)
CryptoUser2019

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Автор: Захар Тихонов Перейти к цитате
лог с ЦР приложите.


Логи нашли только в событиях винды.

1. сообщение:
Код:
System.InvalidOperationException: (10): Пользователь, подписавший запрос, не совпадает с пользователем, передавшим изменение.
   в RegistrationService.HttpApi.HttpApiTransaction.TrySubmitCertRequest(User user, Byte[] rawPkcsRequest, String templateOid, String requestStatus)
   в RegistrationService.HttpApi.HttpApiTransaction.SubmitCertRequestViaPushChangesAuto(HttpRequestMessage request)
   в RegistrationService.HttpApi.CertRequestController.Post()
   в lambda_method(Closure , Object , Object[] )
   в System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)
   в System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   в System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)


2 сообщение:
Код:
Запрос на сертификат создать не удалось. Пользователь, выполнивший действие: Веб-портал (вход с сертификатом) (Id: 6f00205c-2220-e711-a465-14dae92987c2)   Подробно: Добавление строки (Id: 144f393d-547e-4d97-9df6-aaa700fbc434) в таблице CertRequest.
Список значений колонок:
Идентификатор запр. на сертификат (CertRequestId: 0x3000) = 144f393d-547e-4d97-9df6-aaa700fbc434
Идентификатор пользователя (UserId: 0x3001) = 9da7b5e5-39b6-4c84-86f7-aa61009580b7
Статус запроса (код) (Status: 0x3004) = Q
Двоичный запрос (RawRequest: 0x300c) = System.Byte[]
Комментарий пользователя (UserComment: 0x3029) = 
Признак совместимости формата с 1.5 (CompatMode: 0x303d) = 0
Шаблон сертификата (OID) (TemplateOid: 0x3038) = 1.2.643.2.2.50.1.10.10704572.6643853.11816211.15758793.11385.28681
Шаблон сертификата (старшая версия) (TemplateMajorVersion: 0x3039) = 1
Шаблон сертификата (младшая версия) (TemplateMinorVersion: 0x303a) = 0
Идентификатор ЦС (AuthorityId: 0x300a) = 2c15f905-da46-4fe7-8678-a9a600f29ee5
   Описание ошибки: PkiService.BusinessLogic.LogicException: Пользователь, подписавший запрос, не совпадает с пользователем, передавшим изменение.
   в RegistrationService.BusinessLogic.SignatureProcessor.VerifySigner(SignedCms signature, Boolean& mustBeSignedByRecipientUser)
   в RegistrationService.BusinessLogic.SignatureProcessor.Process()
   в RegistrationService.BusinessLogic.Preprocess.VerifyGenericRequest(ChangeRaRowContext context, Object entityObject)
   в RegistrationService.BusinessLogic.ProcessActions.Run(ChangeRaRowContext context, Object entityObject, List`1& waitCompleteHandlers)
   в RegistrationService.BusinessLogic.ChangeRaRowOperation.OnRowChanging(ChangeRaRowContext context, Object entityObject, List`1& waitCompleteHandlers)
   в PkiService.BusinessLogic.ChangeRowOperationBase`1.Run(List`1& waitCompleteHandlers)
Offline Захар Тихонов  
#13 Оставлено : 23 августа 2019 г. 8:08:12(UTC)
Захар Тихонов

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

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 2,231
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 22 раз
Поблагодарили: 358 раз в 345 постах
Еще раз. Лог надо собрать согласно https://support.cryptopr...pomoshhju-svctraceviewer
Полученные файлы из папки log приложить. Только лог собрать при воспроизведении ошибки!
Техническую поддержку оказываем тут.
Наша база знаний.
Offline CryptoUser2019  
#14 Оставлено : 26 августа 2019 г. 11:11:47(UTC)
CryptoUser2019

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Не ясно как вообще эти логи пишулся в каталог logs.
Сам каталог logs создан давно.
Сегодня выполнили запрос, который привел к той же ошибке, но логов за сегодня еще нет...
За прошлые дни файлы логов находили, но ошибок там не было. Там такого рода текст везде:
Код:
2019-08-11 01:49:38 10.27.89.30 POST /CA/CertRequestService.svc/ - 443 AdminRA2012 10.27.89.31 - - 200 0 0 124
2019-08-11 01:50:09 10.27.89.30 POST /CA/CertRequestService.svc/ - 443 AdminRA2012 10.27.89.31 - - 200 0 0 46
Offline Захар Тихонов  
#15 Оставлено : 26 августа 2019 г. 11:24:41(UTC)
Захар Тихонов

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

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 2,231
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 22 раз
Поблагодарили: 358 раз в 345 постах
папка должна быть с именем "log", а не "logs".
Для записи логов требуется перезапуск служб - обязательно (после создания папки). Далее воспроизвести ошибку. Снова перезапустить службы. Из папки приложить файлы. Все довольно просто.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline CryptoUser2019  
#16 Оставлено : 26 августа 2019 г. 12:04:02(UTC)
CryptoUser2019

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Прошу прощения, каталог на самом деле называется log. И существует он давно.
Теперь ясно, что триггером к записи событий является перезагрузка.
К сожалению, пока перезагрузку никто санкционировать не может. Другого сервера не имею...
Offline Захар Тихонов  
#17 Оставлено : 26 августа 2019 г. 12:54:54(UTC)
Захар Тихонов

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

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 2,231
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 22 раз
Поблагодарили: 358 раз в 345 постах
Когда будет возможность собрать лог, создайте, пожалуйста, заявку на портале ТП с этой проблемой и приложите там лог https://support.cryptopro.ru/
Техническую поддержку оказываем тут.
Наша база знаний.
Offline CryptoUser2019  
#18 Оставлено : 3 сентября 2019 г. 17:54:45(UTC)
CryptoUser2019

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Пока лог либо не пишется, либо нам не удается его получить.

Тем временем назрел следующий момент.
Работа по SOAP-API вроде как поддержана и работает в рамках других систем.
А вот с REST-API проблема.
Я правильно понимаю, что у вас там 2 разных обработчика для этих 2х типов запросов?
ПО всей видимости ошибка-то есть в коде УЦ2.0 для REST-API и я бы был признателен, если бы вы сами тоже попытались ее воспроизвести и получить.
Offline Захар Тихонов  
#19 Оставлено : 3 сентября 2019 г. 18:05:14(UTC)
Захар Тихонов

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

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 2,231
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 22 раз
Поблагодарили: 358 раз в 345 постах
Ваш коллега описал на портале ТП более подробно информацию, как вы обращаетесь к УЦ и получил ответ в рамках тикета 25166.
В кратце:
Через httpapi задуманное вами работать не будет. Через httpapi пользователь может выполнять операции только для себя. Для передачи запроса ("сторонним" сервером) требуется использовать только ИВП 2.0.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline CryptoUser2019  
#20 Оставлено : 3 сентября 2019 г. 18:12:06(UTC)
CryptoUser2019

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Автор: Захар Тихонов Перейти к цитате
Ваш коллега описал на портале ТП более подробно информацию, как вы обращаетесь к УЦ и получил ответ в рамках тикета 25166.
В кратце:
Через httpapi задуманное вами работать не будет. Через httpapi пользователь может выполнять операции только для себя. Для передачи запроса ("сторонним" сервером) требуется использовать только ИВП 2.0.


Иными словами REST-API - это не для систем? Т.е. им не могут пользоваться другие системы, которые пересылают запросы пользователей, но при том имеют право на это?
Если это так, то это как минимум странно. В документации такого не видели вообще.
SOAP - оно как Legacy у вас идет, судя по документации. Жаль, что Rest не поддержан в должном виде...
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.