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

Уведомление

Icon
Error

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

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

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

Сказал(а) «Спасибо»: 1 раз
Как я могу с помощью cadesplugin при создании запроса на сертификат установить срок действия запрашиваемого сертификата?
Сейчас я создаю запрос так:

Код:
 async function createRequest( userDistinguishedName ) {
    if ( !userDistinguishedName ) return null;
    const PKey = await createObject("X509Enrollment.CX509PrivateKey");
    const targetCSPObject = await _getCSPObject();

    setProperty(PKey, 'ProviderName', targetCSPObject.name);
    setProperty(PKey, 'ProviderType', targetCSPObject.type);
    setProperty(PKey, 'KeySpec', 1);

    const CertificateRequestPkcs10 = await createObject("X509Enrollment.CX509CertificateRequestPkcs10");
    CertificateRequestPkcs10.InitializeFromPrivateKey(1, PKey, "");

    const DistinguishedName = await createObject("X509Enrollment.CX500DistinguishedName");
    const XCN_CERT_NAME_STR_NONE = 0;
    DistinguishedName.Encode(userDistinguishedName, XCN_CERT_NAME_STR_NONE);
    setProperty(CertificateRequestPkcs10, 'Subject', DistinguishedName);

    const X509Extensions = await CertificateRequestPkcs10.X509Extensions;
    const KeyUsageExtension = await createObject("X509Enrollment.CX509ExtensionKeyUsage");
    const CERT_DATA_ENCIPHERMENT_KEY_USAGE = 0x10,
          CERT_KEY_ENCIPHERMENT_KEY_USAGE = 0x20,
          CERT_DIGITAL_SIGNATURE_KEY_USAGE = 0x80,
          CERT_NON_REPUDIATION_KEY_USAGE = 0x40;

    KeyUsageExtension.InitializeEncode(
                CERT_KEY_ENCIPHERMENT_KEY_USAGE |
                CERT_DATA_ENCIPHERMENT_KEY_USAGE |
                CERT_DIGITAL_SIGNATURE_KEY_USAGE |
                CERT_NON_REPUDIATION_KEY_USAGE);

    X509Extensions.Add(KeyUsageExtension);

    const Enroll = await createObject("X509Enrollment.CX509Enrollment");
    Enroll.InitializeFromRequest(CertificateRequestPkcs10);
    
    const CRYPT_STRING_BASE64REQUESTHEADER = 3;
    const certReq = await Enroll.CreateRequest(CRYPT_STRING_BASE64REQUESTHEADER);
    return certReq;
  }


Что необходимо добавить?
Пытался установить CpRaCertPeriod и CpRaCertPeriodUnits:
Код:

    const CpRaCertPeriod = await createObject("X509Enrollment.CX509NameValuePair");
    CpRaCertPeriod.Initialize("CpRaCertPeriod", "1");
    Enroll.NameValuePairs.Add(CpRaCertPeriod);

    const CpRaCertPeriodUnits = await createObject("X509Enrollment.CX509NameValuePair");
    CpRaCertPeriodUnits.Initialize("CpRaCertPeriodUnits", "Months");
    Enroll.NameValuePairs.Add(CpRaCertPeriodUnits);

Но кидает ошибку: Class not registered. (0x80040154)
Как я могу создать объект CX509NameValuePair? Или можно задать срок иным способом?

Отредактировано пользователем 16 марта 2018 г. 12:57:50(UTC)  | Причина: Не указана

Offline cross  
#2 Оставлено : 16 марта 2018 г. 13:43:25(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 172 раз в 151 постах
В стандарте описывающий запрос на сертификат такой возможности не предусмотрено. Так в же интерфейсе CertEnroll который реализован в плагине такой функциональности нет.
При этом в общем случае наш УЦ поддерживает дополнительные атрибуты запроса, которые позволяют установить срок действия, или задать время начала или окончания действия сертификата. Для того, чтобы УЦ их использовал, нужно разрешить задавать срок действия в шаблоне сертификата в настройках ЦС.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline Mixalloff  
#3 Оставлено : 16 марта 2018 г. 13:47:31(UTC)
Mixalloff

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

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

Сказал(а) «Спасибо»: 1 раз
А каким образом я могу установить эти поля через cadesplugin? Какие объекты для этого используются и как называются атрибуты?
Где можно найти документацию или примеры по этому вопросу?

Отредактировано пользователем 16 марта 2018 г. 15:06:34(UTC)  | Причина: Не указана

Offline cross  
#4 Оставлено : 16 марта 2018 г. 16:45:15(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 172 раз в 151 постах
Автор: Mixalloff Перейти к цитате
А каким образом я могу установить эти поля через cadesplugin? Какие объекты для этого используются и как называются атрибуты?
Где можно найти документацию или примеры по этому вопросу?


Так в же интерфейсе CertEnroll который реализован в плагине такой функциональности нет.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline Варенуха  
#5 Оставлено : 31 июля 2018 г. 17:44:19(UTC)
Варенуха

Статус: Активный участник

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

Сказал(а) «Спасибо»: 28 раз
Поблагодарили: 26 раз в 18 постах
Автор: cross Перейти к цитате
Автор: Mixalloff Перейти к цитате
А каким образом я могу установить эти поля через cadesplugin? Какие объекты для этого используются и как называются атрибуты?
Где можно найти документацию или примеры по этому вопросу?


Так в же интерфейсе CertEnroll который реализован в плагине такой функциональности нет.


Я правильно понимаю, что в настоящее время вообще не существует программных средств добавить в формируемый запрос время окончания срока действия сертификата, хотя ЦС такую функциональность поддерживает?
Offline cross  
#6 Оставлено : 31 июля 2018 г. 18:18:56(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 172 раз в 151 постах
Эта возможность отсутствует в плагине, если вы делаете запрос через CryptoApi или Java ( КриптоПро JCP) то там такая возможность есть.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline Варенуха  
#7 Оставлено : 1 августа 2018 г. 11:55:19(UTC)
Варенуха

Статус: Активный участник

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

Сказал(а) «Спасибо»: 28 раз
Поблагодарили: 26 раз в 18 постах
Автор: cross Перейти к цитате
Эта возможность отсутствует в плагине, если вы делаете запрос через CryptoApi или Java ( КриптоПро JCP) то там такая возможность есть.


Можете поделиться примером кода для её реализации через CryptoApi?
Offline cross  
#8 Оставлено : 1 августа 2018 г. 17:20:41(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 172 раз в 151 постах
Готового примера нет. Вы можете при подписании запроса на сертификат добавить туда подписанный атрибут. Его структура описана в документации на УЦ.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline Максим Коллегин  
#9 Оставлено : 2 августа 2018 г. 1:55:41(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 17 раз
Поблагодарили: 606 раз в 541 постах
Нужно добавить подобный атрибут в запрос.
Можно сделать через XEnroll.

Отредактировано пользователем 2 августа 2018 г. 1:56:36(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
Offline Варенуха  
#10 Оставлено : 2 августа 2018 г. 12:52:38(UTC)
Варенуха

Статус: Активный участник

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

Сказал(а) «Спасибо»: 28 раз
Поблагодарили: 26 раз в 18 постах
Автор: Максим Коллегин Перейти к цитате
Можно сделать через XEnroll.


Подскажите как добавить необходимые атрибуты в IX509CertificateRequestPkcs10 или IX509CertificateRequestPkcs10V2 (используется Windows 7)
Offline Максим Коллегин  
#11 Оставлено : 2 августа 2018 г. 12:53:46(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 17 раз
Поблагодарили: 606 раз в 541 постах
На семёрке этот интерфейс не поддерживается.
Знания в базе знаний, поддержка в техподдержке
Offline Варенуха  
#12 Оставлено : 2 августа 2018 г. 14:51:44(UTC)
Варенуха

Статус: Активный участник

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

Сказал(а) «Спасибо»: 28 раз
Поблагодарили: 26 раз в 18 постах
Автор: Максим Коллегин Перейти к цитате
На семёрке этот интерфейс не поддерживается.

т.е. на семерке эту задачу не решить никаким способом?
Offline Андрей Писарев  
#13 Оставлено : 2 августа 2018 г. 16:52:24(UTC)
Андрей *

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

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

Сказал «Спасибо»: 385 раз
Поблагодарили: 1562 раз в 1202 постах
Автор: Варенуха Перейти к цитате
Автор: Максим Коллегин Перейти к цитате
На семёрке этот интерфейс не поддерживается.

т.е. на семерке эту задачу не решить никаким способом?


через CryptoApi
Техническую поддержку оказываем тут
Наша база знаний
Offline Варенуха  
#14 Оставлено : 3 августа 2018 г. 11:27:44(UTC)
Варенуха

Статус: Активный участник

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

Сказал(а) «Спасибо»: 28 раз
Поблагодарили: 26 раз в 18 постах
Автор: Андрей Писарев Перейти к цитате
Автор: Варенуха Перейти к цитате
Автор: Максим Коллегин Перейти к цитате
На семёрке этот интерфейс не поддерживается.

т.е. на семерке эту задачу не решить никаким способом?


через CryptoApi


Можно у вас пример кода попросить? Никогда раньше этим не занималсяd'oh!
Offline faustoun  
#15 Оставлено : 9 июля 2021 г. 11:55:14(UTC)
faustoun

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

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

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

Я так понимаю добавление атрибутов так и не реализовано?

X509Enrollment.CX509Attributes

X509Enrollment.CX509NameValuePair

на оба класса пишет класс не зарегистрирован.

как тогда быть если у нас все построено вокруг этого плагина cryptopro browser plugin?

Может как то можно передать в X509Enrollment.CX509CertificateRequestPkcs10 asn1 структуру что бы они добавились?

И почему еще не реализована? довольно важная штука так то...

Отредактировано пользователем 9 июля 2021 г. 11:56:09(UTC)  | Причина: Не указана

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