Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Здравствуйте, помогите разобраться с созданием запроса на сертификат в браузере. Проблема возникает именно с этапом добавления расширения политики сертификата. Поскольку plugin не знает класса "X509Enrollment.CCertificatePolicy", то создать это расширение пытаюсь через "X509Enrollment.CX509Extension" Вот код: Код:
var CPolicyIds = CreateObject('X509Enrollment.CObjectIds');
//Заполнение OID политик сертификата
for (var index = 0; index < Policy.length; index++) {
var CPolicy = CreateObject('X509Enrollment.CObjectId');
CPolicy.InitializeFromValue(Policy[index]);
CPolicyIds.Add(CPolicy);
}
var pExt = CreateObject('X509Enrollment.CObjectId');
pExt.InitializeFromValue("2.5.29.32");
var PolicyExtension = CreateObject('X509Enrollment.CX509Extension');
PolicyExtension.Initialize(CPolicyIds, XCN_CRYPT_STRING_BASE64, pExt);//Тут ошибка, параметр задан неверно.
cRequest.X509Extensions.Add(PolicyExtension);
На правильном ли я пути? может вместо константы XCN_CRYPT_STRING_BASE64 надо использовать что-то другое? Непонятно как правильно закодировать эти политики. И еще вопрос о дальнейших действиях, как правильно потом привязать сертификат к закрытому ключу. Нужно инициализировать CX509Enrollment через имя созданного контейнера или же по созданному запросу на сертификат? Хотелось бы примеры посмотреть, работы с вашим плагином. Отредактировано пользователем 18 декабря 2014 г. 14:34:35(UTC)
| Причина: Добавлен второй вопрос
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Да, я читал эту страницу. Все равно не понятно, каким образом CObjectIds представить в этом виде Цитата:A BSTR variable that contains the DER-encoded extension value. Или не нужен CObjectIds?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Нужно закодированное значение расширения. Первый параметр - OID добавляемого расширения, второй - кодировка, третий - закодированное значение в этой кодировке. Если вы добавляете расширение CertificatePolicies, то посмотреть его ASN.1 нотацию можно, например, здесь: http://msdn.microsoft.co...ws/desktop/aa378121.aspxТо есть, представить CObjectIds в виде закодированной строки явно недостаточно.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Разобраться не получилось. Пробовал создать объект и кодировать его в base64. Запрос успешно создавался, но в политиках сертификата значилось только V1 и выпустить сертификат не получалось. Потом в настройках УЦ заметил, что OID политик сертификата достаточно добавить в улучшенный ключ запроса. И при выпуске сертификата на УЦ, их потом оттуда вытащат и положат куда нужно. На этом варианте и остановился. Добавляю все в EKU, а там есть замечательный метод InitializeFromValue, который принимает нормальную человеческую строчку. ))) С привязкой сертификата к закрытому ключу тоже все получилось сразу. Спасибо! Отредактировано пользователем 19 декабря 2014 г. 9:07:02(UTC)
| Причина: закрыт вопрос по привязке сертификата
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close