Статус: Новичок
Группы: Участники
Зарегистрирован: 06.05.2024(UTC) Сообщений: 1 Откуда: Санкт-Петербург
|
Здравствуйте, стоит задача установки сертификатов с помощью плагина и JS на устройство юзера. Изначально я делаю запрос на выпуск сертфиката, далее мне с бэкенда приходит 6 сертификатов в формате base64: - Сертификат, который мы устанавливаем в хранилище "Доверенные корневые центры сертификации"
- Список отзыва
- Сертификат, который мы устанавливаем в хранилище "Промежуточные центры сертификации"
- Список отзыва
- Личный сертификат, который мы устанавливаем в "Личное"
- Сертификат, который мы устанавливаем в хранилище "Другие пользователи"
Все эти сертификаты необходимо устанавливать строго в этом порядке и в определенные хранилища. Все сертификаты, кроме личного, мы устанавливаем таким образом: формируем .cer/.crl файл из base64, скачиваем в систему, устанавливаем вручную. Весь этот процесс очень громоздкий, долгий и не удобный. Собственно, хотелось бы устанавливать эти сертификаты автоматически/кодом (как и личный сертификат). Разобрался, что установить сертификат можно таким путем:
Цитата: export async function installCertificate({ certificate, storeName, }: { certificate: string; storeName: EnumAsUnion<typeof CAPICOM.CAPICOM_STORE_NAME>; }) { try { const preparedCert = "-----BEGIN CERTIFICATE-----\n" + certificate .match(/.{1,64}/g)! .map((t) => `${t}\n`) .join("") + "-----END CERTIFICATE-----";
const cert = await cadesplugin.CreateObjectAsync("CAdESCOM.Certificate"); await cert.Import(preparedCert);
const store = await cadesplugin.CreateObjectAsync("CAPICOM.Store"); await store.Open( cadesplugin.CAPICOM_CURRENT_USER_STORE, storeName, cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED );
await store.Add(cert); await store.Close(); } catch (err: uknown) { throw new Error(err?.message); } }
Такой функцией удается успешно установить сертификат №1, но, например, при попытке установить сертификат №3 или №6, то получаю ошибку "The parameter is incorrect. (0x80070057)". Найти где-то информацию что это за ошибка и как с ней быть не удается, надеюсь на Вашу помощь P.S. Сертификаты приложить не могу, служба безопасности не простит P.S.S. Личный сертификат устанавливается через X509Enrollment.CX509Enrollment, поэтому к нему вопрос не относится
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close