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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Wissenkrieger  
#1 Оставлено : 25 ноября 2010 г. 2:14:36(UTC)
Wissenkrieger

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

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

Здравствуйте.

Я создаю запрос сертификата в веб-странице через VBScript/JavaScript, используя функционал CertEnroll. И всё было замечательно, пока я не столкнулся с необходимостью указывать в запросе OID в политику сертификата. Политику можно создать с помощью интерфейса ICertificatePolicies, но вот беда - объект IX509EnrollmentWebClassFactory, который обеспечивает всю веб-функциональность, не поддерживает данный интерфейс, т.е. создать объект политики не получается. Использование ключа - разрешает. Улучшенное использования ключа - тоже без проблем. А вот политику задать почему-то никак. Eh?

В соответствии с 353 приказом ФНС все сертификаты, с которыми налоговые инспекции имеют дело, обязаны иметь так называемый OID "Квалификация подписи", причем этот OID необходимо помещать именно в политики сертификата. Но как же запросить такой сертификат через веб-страницу? Think Может быть, есть обходные пути указания политики? Буду благодарен за любые подсказки.
Offline Kirill Sobolev  
#2 Оставлено : 25 ноября 2010 г. 14:24:51(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
подсказка в MS Technet

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

Техническую поддержку оказываем тут
Наша база знаний
Offline Wissenkrieger  
#3 Оставлено : 25 ноября 2010 г. 15:19:40(UTC)
Wissenkrieger

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

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

Цитата:
подсказка в MS Technet

Хорошая статейка, запомнил на будущее, хотя предложенный там алгоритм я и так знал. Однако она навела меня на другую мысль - в статье не используется IX509EnrollmentWebClassFactory для создания криптообъектов. Зачем же его использую я? А потому что в MSDN английским по белому написано, что именно его надо использовать в веб-страницах. Более того, если подглядеть в исходный код страницы создания запроса в тестовом УЦ КриптоПро, то видно, что этот объект тоже используется.

"Какого черта?", - подумал я, и удалил этот объект и стал создавать криптообъекты напрямую. И... о чудо! ICertificatePolicies, как и прочие, успешно создался и я получил запрос, а впоследствии сертификат - с политикой! Applause
Осталось загадкой, зачем тогда вообще нужен IX509EnrollmentWebClassFactory, если я в веб-странице и без него могу что хочу создавать. Тем не менее, проблема решилась.
Kirill Sobolev, спасибо!
Offline Wissenkrieger  
#4 Оставлено : 1 декабря 2010 г. 19:48:21(UTC)
Wissenkrieger

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

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

Итак, в Windows Vista/7/2008 создавать запросы сертификата в скриптах легко и приятно благодаря механизму IX509Enrollment со товарищи.
А как насчет Windows XP? Там приходится довольствоваться грубой штукой XEnroll, которая не больно-то гибка в настройках. По сути всё действо сводится к вызову метода CreatePKCS10, куда передаётся Distinguished Name и набор OID'ов, которые попадут в "улучшенное использование ключа". Как же указать политику применения? Я пробовал дёргать XEnroll::addExtensionToRequest в различных вариациях, но успеха не добился - ошибок нет, но на сертификатах наличие команды не отражается, как будто XEnroll просто игнорирует этот вызов...

Как же все-таки указать политику применения сертификата в запросе, используя средства XEnroll? И возможно ли это вообще?
Offline Kirill Sobolev  
#5 Оставлено : 1 декабря 2010 г. 20:50:30(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
А в запросы попадает?
Попробуйте вместо сreatePKCS10 createRequest с разными флагами.
Техническую поддержку оказываем тут
Наша база знаний
Offline Wissenkrieger  
#6 Оставлено : 2 декабря 2010 г. 20:15:33(UTC)
Wissenkrieger

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

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

В запросы тоже не попадает, если использовать CreatePKCS10. А вот метод CreateRequest порадовал - политика добавилась, правда в её значении был какой-то мусор. Поразмыслив, я решил сделать хитрость: в C++ через WinAPI создал политику сертификата, закодировал в ASN и результат записал в файл, после чего подсунул эти бинарные данные в метод addExtensionToRequest. Сработало! Путём такого чудовищного изврата получилось в XP через скрипт создать запрос с нужной политикой! Грязно, но работает, я уже совсем было обрадовался, однако не тут-то было...

В КриптоПро 3.6 всё работает, а вот в КриптоПро 3.0 беда - при попытке вызвать CreateRequest после дёрганья мышкой в ДСЧ и выбора пароля получаем сначала ошибку 0x80090020, а все последующие вызовы - 0x8009001A. Что на реестр, что на флешку. Причем, как выяснилось, от политики сертификата это никак не зависит, даже если её убрать. Просто - метод XEnroll::CreateRequest отказывается работать в 3.0. Перепробовал все варианты флагов - безрезультатно. Может я что-то еще упустил? Чего в 3.0 не хватает для счастья?
Offline Kirill Sobolev  
#7 Оставлено : 3 декабря 2010 г. 16:56:06(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Может быть не хватает SP3 для CSP?
Техническую поддержку оказываем тут
Наша база знаний
Offline Wissenkrieger  
#8 Оставлено : 8 декабря 2010 г. 16:48:44(UTC)
Wissenkrieger

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

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

Точно! Сервиспак всё полечил, спасибо. Надо потом ещё посмотреть будет, как 2.0 себя ведёт...
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.