Имя: Пароль:
1C
1С v8
Получить сертификат из Крипто ПРО
0 LeoKeyn
 
17.04.18
09:03
Всем Здравствуйте!
Очень прошу помощи, ибо своего знания не хватает вообще.

Задача, соединиться с сервером по POST для отправки данных XML и
получения ответа. Для соединения необходимы сертификаты,
установленные с помощью Крипто ПРО на внешний контейнер(USB). В
систему сертификаты как пользовательский, так и корневые так же
установлены (работоспособность проверена стандартной программой
для соединения с ними HTTP Link Batch). Но пытаясь отправить
запрос-соединение из 1с сервер ругает за отсутствия
пользовательского или корневых сертификатов. Подскажите,
пожалуйста в чем я ошибся и как не правильно из беру? Так как
примеров найти не могу вообще. Заранее огромное спасибо за помощь
тем кто откликнется!!! (код прилагаю)




ФайлНаОтправкуТело = "D:\Запрос шифр.txt";

    Сервер = "test.rb-ei.com";
    Ресурс = "https://test.rb-ei.com/cpuEnquiry.asp";;
    СертификатКлиента = Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Выбирать);
    СертификатУЦ = Новый СертификатыУдостоверяющихЦентровWindows();
    
    СоединениеЗащита = Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента, СертификатУЦ);
    HTTP =  Новый HTTPСоединение(Сервер,,"User1","kred-test@12",,,СоединениеЗащита);
    // Запишем в файл содержимое тела запроса (текст)  
    // Получим размер данных для передачи в заголовок
    ФайлНаОтправку = Новый Файл(ФайлНаОтправкуТело);
    HTTPЗапрос = Новый HTTPЗапрос(Ресурс);
    HTTPЗапрос.УстановитьИмяФайлаТела(ФайлНаОтправкуТело);
    // Получим временный файл — тело ответа POST запроса
    ФайлРезультат = ПолучитьИмяВременногоФайла();
    РазмерФайлаНаОтправку = XMLСтрока(ФайлНаОтправку.Размер());
    // Заголовок создадим в виде соответствия
    ЗаголовокЗапросаHTTP = Новый Соответствие;
    // Передаем в заголовках размер и тип данных на отправку
    ЗаголовокЗапросаHTTP.Вставить("Content-Length", РазмерФайлаНаОтправку);
    ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded; Charset=windows-1251");
    ЗаголовокЗапросаHTTP.Вставить("Connection", "Close");
    HTTPЗапрос.Заголовки = ЗаголовокЗапросаHTTP;
    // Отсылаем POST запрос на обработку.
    HTTP.ОтправитьДляОбработки(HTTPЗапрос, ФайлРезультат);    
    // Получим ответ
    ТекстовыйФайлОтвета = Новый ТекстовыйДокумент;
    ТекстовыйФайлОтвета.Прочитать(ФайлРезультат, КодировкаТекста.ANSI);
    ТекстовыйФайлОтвета.Записать("d:\123456.txt");
1 LeoKeyn
 
17.04.18
10:04
(0) Может кто то сможет подсказать как это переделать через Новый COMОбъект("WinHttp.WinHttpRequest.5.1");???
Проде как пишут через него должно сработать по человечески:-)
2 LeoKeyn
 
17.04.18
10:12
Очень прошу помочь, никогда не работал с этим, а понять очень нужно
3 timurhv
 
17.04.18
10:25
Может типовые посмотреть? Конфигурация на управляемых формах? Сервер - отдельная машина? Если да, то откуда она узнает о сертификатах на клиентских?
4 LeoKeyn
 
17.04.18
10:28
(3) файловая база. Управляемое приложение, код выполняется на клиенте
5 timurhv
 
17.04.18
10:32
(4) А сам КриптоПро?
6 LeoKeyn
 
17.04.18
10:32
(5) Сам крипто ПРО на этой же машине. Или в чем вопрос?
7 LeoKeyn
 
17.04.18
10:33
(5) Все работает при попытке зайти через IE. 1с коннектиться не хочет
8 timurhv
 
17.04.18
10:34
(7) БСП подключить типовую?
https://its.1c.ru/db/bsp244doc#content:1846:1
9 LeoKeyn
 
17.04.18
10:37
(8) и типо как код там посмотреть?
10 timurhv
 
17.04.18
10:39
(9) Можешь код глянуть, можешь саму БСП включить. Если типовая конфигурация - там уже должна быть БСП.
Но там вроде не через https.
11 Широкий
 
17.04.18
11:05
(0)Обмен с ОКБ? :))
Интересно - не оду ли задачу мы делаем?
Стукни мне в асю, дам подсказку
12 LeoKeyn
 
17.04.18
11:12
(11) напиши асю, очень может быть)
13 LeoKeyn
 
17.04.18
11:12
(11) да ОКБ)
14 LeoKeyn
 
17.04.18
11:13
(10) конфа самописка
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан