Работа с SSL/TLS сертификатами

1. Alsegan 22.11.19 10:28 Сейчас в теме
Добрый день!
Уже месяц бьюсь над задачей интеграции со Сбербанком.

Задача:
Отправлять из 1С запрос к Серверу банка, а от него получать обратно ответ.

Проблема:
При отправке запроса нужно добавить к запросу Клиентский сертификат, который Банк для нас сделал по CSR запросу, но при отправке выходит след ошибка:

"{ВнешняяОбработка.HTTP.Форма.Форма.Форма(106)}: Ошибка при вызове метода контекста (Send)
WinHttp.Send(ТекстДляСервера);
по причине:
Произошла исключительная ситуация (WinHttp.WinHttpRequest): В сертификате клиента отсутствовали учетные данные."

На форумах пишут, что данная ошибка происходит из-за того, что WinHttp.WinHttpRequest.5.1 не может отследить цепочку сертификатов. И советуют использовать MSScriptControl.ScriptControl для отключения проверки, но это не помогает.

Вот весь код:

ТекстДляСервера = "<?xml version=""1.0"" encoding=""UTF-8""?><soapenv:Envelope xmlns:pws=""http://servicecenter.peregrine.com/PWS"" xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"">
	                  |<soapenv:Body><pws:ListRequest><pws:model><pws:keys></pws:keys><pws:instance></pws:instance></pws:model><pws:Password>1</pws:Password></pws:ListRequest></soapenv:Body></soapenv:Envelope>";
	
&НаСервере
Процедура ПроверитьСоединение()
	
	WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
	WinHttp.SetClientCertificate("LOCAL_MACHINE\my\Certificate");
	
	//WinHttp.Option(2,"Windows-1251");
	//WinHttp.Option(4,"13056");
	//WinHttp.Option(6, Истина);
	//WinHttp.Option(12,Истина);
	
	// ************************** Начало блока по отключению защищенного соединения **********
	Скрипт= Новый COMОбъект("MSScriptControl.ScriptControl");
	Скрипт.language="javascript";
	Скрипт.AddObject("WinHttp",WinHttp);
	Скрипт.Eval("WinHttp.Option(2)=1251"); // установка кодировки страницы
	Скрипт.Eval("WinHttp.Option(4)=13056");//intSslErrorIgnoreFlags Игноировать ошбибки при SSL соединении
	Скрипт.Eval("WinHttp.Option(6)=true");//blnEnableRedirects Разрешить перенаправления
	Скрипт.Eval("WinHttp.Option(12)=true");//blnEnableHttpsToHttpRedirects Разрешить перенаправления с защищенного на не защиещенное соединение
	// ************************** Конец блока по отключению защищенного соединения **********
	
	WinHttp.Open("POST", "https://191.51.18.2:1244", Ложь); 
    
 
	WinHttp.Send(ТекстДляСервера);
	ТТ = WinHttp.ResponseText();

КонецПроцедуры
Показать


Certificate - Сертификат который прислал сбербанк в ответ на наш CSR запрос
Certificate_privat - вторая часть ключа, для расшифровки ответа
Certificate - подписан сертификатами Sbebank External CA 2 и Sberbank Root CA

Все сертификаты установил в хранилище "Локальный компьютер"
Certificate - в Личное
Certificate_privat - в "Доверенные корневые центры сертификации"
Sbebank External CA 2 и Sberbank Root CA - в "Доверенные корневые центры сертификации"
Sbebank External CA 2 - в "Промежуточные центры сертификации"
Sberbank Root CA - в "Сторонние корневые центры сертификации"


Подскажите может быть кто нибудь сталкивался с подобной проблемой, что я делаю не верно?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Staind111 21.10.20 16:16 Сейчас в теме
(1) Подскажите, сегодня столкнулись с такой же ситуацией, как решился ваш вопрос?
3. Alsegan 22.10.20 12:49 Сейчас в теме
К сожалению никак. Проверили через JavaScript, всё работает , из 1С никак. В поддержке сбера тоже помочь не смогли.
4. Staind111 22.10.20 12:52 Сейчас в теме
(3)Спасибо, мы уже разобрались в чем у нас была проблема
5. Alsegan 22.10.20 16:22 Сейчас в теме
А в чем у вас была проблема?
6. Staind111 23.10.20 07:57 Сейчас в теме
(5)Забыли про команду
openssl.exe pkcs12 -export –in Certificate.crt -inkey CertificateClient.key -out Client.p12
т.е. без ключа закинули в систему сертификат присланный контрагентом в ответ на наш csr запрос))
7. Tony_Medvedos 09.12.21 10:06 Сейчас в теме
(6) Подскажите пожалуйста, после выполнения команды вы установили повторно сертификат?
Каким образом передача самого сертификата была выполнена в 1С?
Уже всю голову сломал с Новый ЗащищенноеСоединение. Как только не пробовал.
Можете показать как вы сделали?
8. Staind111 09.12.21 11:49 Сейчас в теме
(7)Не пойму что значит установили повторно, это новый сертификат, до этого он еще не был установлен.
У нас сделано не через ЗащищенноеСоединение, а как и в первом сообщении темы через COMОбъект.
9. Tony_Medvedos 09.12.21 16:03 Сейчас в теме
(8)Да, это я тупанул. Не понятно еще какой сертификат в команду вставлять. Есть сертификат .pfx , .crt и ключей - 6 штук (header, masks, masks2, name, primary, prymary2)
Оставьте свое сообщение
Вакансии
Разработчик 1С (от middle до senior), до 300 К gross
Санкт-Петербург
зарплата от 195 000 руб. до 300 000 руб.
Полный день

Аналитик
Москва
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день

Разработчик 1С:ERP WE
Москва
зарплата от 250 000 руб.
Полный день

Аналитик 1С:ЗУП
Москва
зарплата от 150 000 руб.
Полный день