|
0
littlekan
11.03.22
✎
14:57
|
win2016 + 1С 8.3.20 + IIS
Имею веб-сервис опубликованный на IIS, необходимо работать с ЭП (Поиск сертификатов в хранилище и подписание файлов).
Через обработку все работает.
&НаКлиенте
Процедура ПодписатьФайл()
ТипыСертификатов = Новый Массив;
ТипыСертификатов.Добавить(ТипХранилищаСертификатовКриптографии.ПерсональныеСертификаты);
ТипыСертификатов.Добавить(ТипХранилищаСертификатовКриптографии.СертификатыПолучателей);
Список = ПолучитьСписокСертификатов(80, ТипыСертификатов, Истина);
Сертификат = Список[0];
МенеджерКриптографии = Новый МенеджерКриптографии("", "", 80);
МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = "";
ПутьКФайлуШифрованный = ПутьКФайлу + ".sig";
МенеджерКриптографии.Подписать(ПутьКФайлу, ПутьКФайлуШифрованный, Сертификат);
КонецПроцедуры
&НаСервере
Функция ПолучитьСписокСертификатов(ТипМенеджераКриптографии, МассивТипов, ПроверятьДатуОкончания)
//Списоксертификатов
СписокСертификатов = Новый Массив;
МенеджерКриптографии = Новый МенеджерКриптографии("", "", ТипМенеджераКриптографии);
Для Каждого ТипХранилища Из ТипыХранилищ Цикл
//Получаемсертификатыдлякаждоготипахранилищасертификатов
Хранилище = МенеджерКриптографии.ПолучитьХранилищеСертификатов(ТипХранилища);
//Выбираем все сертификаты
СертификатыХранилища = Хранилище.ПолучитьВсе();
ТекущаяДата = ТекущаяДата();
Для Каждого Сертификат Из СертификатыХранилища Цикл
Если ПроверятьДатуОкончания И Сертификат.ДатаОкончания < ТекущаяДата Тогда
//Пропускаем истекшие сертификаты, если нужно
Продолжить;
КонецЕсли;
СписокСертификатов.Добавить(Сертификат);
КонецЦикла;
КонецЦикла;
Возврат СписокСертификатов;
КонецФункции
а через веб-сервис опубликованной базы ничего не работает
Следующий код не пускает в хранилище:
Хранилище = МенеджерКриптографии.ПолучитьХранилищеСертификатов(ТипХранилища);
Ошибка при вызове метода контекста (ПолучитьХранилищеСертификатов): Ошибка при открытии хранилища сертификатов (0x00000005)
а здесь пусто:
ХранилищеСертификатов2 = МенеджерКриптографии.ПолучитьХранилищеСертификатов();
Сертификат = ХранилищеСертификатов2.ПолучитьВсе();
Ребята, есть идеи?
|
|