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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Mixalloff  
#1 Оставлено : 14 мая 2018 г. 10:19:08(UTC)
Mixalloff

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день!
При запросе на сертификат добавляются лишние атрибуты, как их можно убрать из request-a?
Атрибуты, которые не нужны:
Код:
Атрибут[0]: 1.3.6.1.4.1.311.13.2.3 (Версия ОС)
    Значение[0][0]:
        10.0.10586.2

  Атрибут[2]: 1.3.6.1.4.1.311.21.20 (Сведения о клиенте)
    Значение[2][0]:
    Неизвестный тип атрибута
    Код клиента: = 5
    ClientIdDefaultRequest — 5
    Пользователь: DESKTOP-8L8P88P\nviva
    Компьютер: DESKTOP-8L8P88P
    Процесс: CertEnrollCtrl.exe

  Атрибут[3]: 1.3.6.1.4.1.311.13.2.2 (CSP подачи заявок)
    Значение[3][0]:
    Неизвестный тип атрибута
    Сведения о поставщике криптографии
    KeySpec = 1
    Поставщик = Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider
    Подпись: НеиспользБит=0


Запрос создается следующим образом:
Код:
async createRequest(userDistinguishedName) {
    try {
      if (!userDistinguishedName) {
        return null;
      }
      const PKey            = await this.createObject(<any>'X509Enrollment.CX509PrivateKey');
      const targetCSPObject = await this.getCSPObject();
  
      this.setProperty(PKey, 'ProviderName', targetCSPObject.name);
      this.setProperty(PKey, 'ProviderType', targetCSPObject.type);
      this.setProperty(PKey, 'KeySpec', 1);
  
      const CertificateRequestPkcs10 = await this.createObject(<any>'X509Enrollment.CX509CertificateRequestPkcs10');
      CertificateRequestPkcs10.InitializeFromPrivateKey(1, PKey, '');
  
      const DistinguishedName      = await this.createObject(<any>'X509Enrollment.CX500DistinguishedName');
      const XCN_CERT_NAME_STR_NONE = 0;
      DistinguishedName.Encode(userDistinguishedName, XCN_CERT_NAME_STR_NONE);
      this.setProperty(CertificateRequestPkcs10, 'Subject', DistinguishedName);
  
      const X509Extensions                   = await CertificateRequestPkcs10.X509Extensions;
      const KeyUsageExtension                = await this.createObject(<any>'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 this.createObject(<any>'X509Enrollment.CX509Enrollment');
      Enroll.InitializeFromRequest(CertificateRequestPkcs10);  
      const CRYPT_STRING_BASE64REQUESTHEADER = 3;
      const certReq                          = await Enroll.CreateRequest(CRYPT_STRING_BASE64REQUESTHEADER);
      return certReq;
    } catch ( err ) {
      this.notification.danger( 'Ошибка генерации запроса' );
      throw err;
    }
  }
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.