Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Inc  
#1 Оставлено : 16 августа 2013 г. 12:49:19(UTC)
Inc

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

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

Сказал «Спасибо»: 1 раз
Добрый день.

Подскажите, пожалуйста, каким образом через API ЦР (веб-сервис RA) можно определить причину отзыва сертификата?

Логика такая:
1) Получить информацию о сертификате (CertViewSoapPort->GetCertificateInfo);
2) Из информации о сертификате определить что сертификат отозван (StateID), и определить идентификатор запроса на отзыв (RevokeRequestID);
3) Получить информацию о запросе на отзыв (RevokeRequestSoapPort->GetRequestInfo);
4) Из информации о запросе на отзыв определить причину отзыва (Reason).

Проблема в том, что метод CertViewSoapPort->GetCertificateInfo не возвращает атрибут RevokeRequest, хотя в xml-схеме он указан (как и в документации - руководство программиста).

Версия Крипто Про УЦ: 1.5.1072.

Интересующий сертификат действительно отозван - по информации из АРМ Администратора ЦР.

Пример ответа GetCertificateInfo:
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly'>
<s:AttributeType name='CertificateID' rs:number='1'
rs:writeunknown='true'>
<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10'
rs:fixedlength='true' rs:maybenull='false'/>
</s:AttributeType>
/omitted/
<s:AttributeType name='EKU' rs:number='13' rs:nullable='true'
rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='8000'/>
</s:AttributeType>
<s:AttributeType name='RevokeRequest' rs:number='14'
rs:nullable='true'>
<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10'
rs:fixedlength='true'/>
</s:AttributeType>

<s:extends type='rs:rowbase'/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row CertificateID='20' UserID='11' StateID='2' DisplayName='user'
SerialNumber='1377983F000000000017' CertRequestID='23'
IssueDate='2013-08-16T12:13:00' ExpireDate='2014-11-16T12:23:00'
PublicKey='/omitted/'
KeyExpireDate='2014-11-16T12:13:00' PKCS='/omitted/'
Subject='1.2.840.113549.1.9.1=user@company.ru, 2.5.4.6=RU, 2.5.4.8=77, 2.5.4.7=Moscow, 2.5.4.10=Company, 2.5.4.11=IT, 2.5.4.3=user'
EKU='1.3.6.1.5.5.7.3.2, 1.3.6.1.5.5.7.3.4'/>
</rs:data>


Решение с перечислением запросов на отзыв (RevokeRequestSoapPort->GetRevRequestsListMtoN) и поиском в них нужного сертификата - выглядит тяжеловесным.
Offline Жнец  
#2 Оставлено : 16 августа 2013 г. 12:56:56(UTC)
Жнец

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

Группы: Участники
Зарегистрирован: 14.08.2013(UTC)
Сообщений: 11
Мужчина
Украина
Откуда: Одесса

Сказал «Спасибо»: 1 раз
Может проще посмотреть CRL? Там и причина отзыва есть.
Offline Kirill Sobolev  
#3 Оставлено : 16 августа 2013 г. 17:09:32(UTC)
Кирилл Соболев

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

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
А запрос на отзыв, полученный с помощью GetRequestInfo, для этого сертификата можете показать?
Техническую поддержку оказываем тут
Наша база знаний
Offline Inc  
#4 Оставлено : 19 августа 2013 г. 9:29:35(UTC)
Inc

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

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

Сказал «Спасибо»: 1 раз
Автор: Kirill Sobolev Перейти к цитате
А запрос на отзыв, полученный с помощью GetRequestInfo, для этого сертификата можете показать?


Запрос на отзыв полученный с помощью вызова RevokeRequestSoapBinding->GetRequestInfo:

<rs:data>
<z:row RevokeRequestID='8' UserID='11' CertificateID='20'
StateID='4' RequestDate='2013-08-16T12:23:33.910000000'
ApproveDate='2013-08-16T12:23:34.193000000' Reason='5'
SerialNumber='1377983F000000000017' Request='/omitted/'/>
</rs:data>
Offline Kirill Sobolev  
#5 Оставлено : 19 августа 2013 г. 10:18:36(UTC)
Кирилл Соболев

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

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Спасибо за информацию.
В хранимую процедуру, которую вызывает метод GetCertificateInfo, вкралась ошибка.
Если запрос на отзыв находится в состоянии StateID='4' ("Completed"), то в выборку он не попадает.
Будет исправлено в следующей сборке.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Кирилл Соболев за этот пост.
Inc оставлено 19.08.2013(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.