Как отловить POST запрос (https-протокол) из 1С?

1. kh_xen 31.08.22 10:10 Сейчас в теме
Добрый день!

Подскажите, как можно отловить POST запрос отправленный из 1С?

Настраиваю интеграцию SberBuisness API, при попытке получить Access Token получаю ответ, что часть параметров не заполнена.
Хочу посмотреть что же я им отправила.

Пытаюсь настроить WireShark, но тут вопрос: для какого браузера указывать сохранение ключа для расшифровки (Pre-Master-Secret log)?
Найденные решения
11. spacecraft 31.08.22 11:20 Сейчас в теме
(10)
HTTPЗапрос.Заголовки.Вставить("Content-Type", "Application/X-Www-Form-Urlencoded");

Сообщаете, что передаете в этом формате, в тело подсовываете json.
Это так не работает. Читайте про этот формат и передавайте именно в нем.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
6. spacecraft 31.08.22 10:34 Сейчас в теме
(1) для этого используются снифферы.
В том же постмане есть такая возможность. Смысл такой: перенаправляется отслеживаемый трафик через прокси, которым будет управлять и перехватывать сниффер.
2. winapi 60 31.08.22 10:21 Сейчас в теме
Так вы отправляете из 1С, там же видно что отправляете - зачем это смотреть на стороне получателя?
3. kh_xen 31.08.22 10:24 Сейчас в теме
(2) Да, в http-запросе я вижу что отправляю, меня не устраивает ответ, который я получаю.
В ответе получаю, что один из параметров не заполнен. А он заполнен. Поэтому и хочу посмотреть.
4. user1203706 12 31.08.22 10:30 Сейчас в теме
5. user1203706 12 31.08.22 10:32 Сейчас в теме
+4 тут про отладку сервисов, но это пофик, он ловит весь трафик
https://its.1c.ru/db/metod8dev/content/5756/hdoc
9. kh_xen 31.08.22 11:11 Сейчас в теме
(5) Ставила Fiddler. При запущенном Fiddler при отправке запроса в 1С: Ошибка установки SSL-соединения.
15. svilsa 12 31.08.22 12:20 Сейчас в теме
(9)Там в самом Fiddler вроде надо отдельное разрешение поставить "Разрешить SSL запросы" в настройках, была вроде такая проблема тоже
16. svilsa 12 31.08.22 12:26 Сейчас в теме
(15) Вот попробуйте по этой инструкции Fiddler со слов Вкладка "HTTPS"
19. kh_xen 31.08.22 12:39 Сейчас в теме
(16) Спасибо! Попробую по инструкции.
7. user1203706 12 31.08.22 10:39 Сейчас в теме
(1) а так, напишите пример вашего запроса.
Доку по api, тут смотрите ?

https://sberbusinessapi-documentation.github.io/#authorize_code
10. kh_xen 31.08.22 11:17 Сейчас в теме
(7) Тут.
Вот тут не могу получить пару Access Token, Refresh Token: https://developers.sber.ru/docs/ru/sberbusinessapi/authorization/auth-sbbid/tokens

Получаю Authorization code, тут же подставляю его в POST-запрос и получаю ошибку 400:
{"error":"invalid_grant","error_description":"One of the params ('code', 'refresh_token') is required at request"}

ssl1 = Новый ЗащищенноеСоединениеOpenSSL(
            Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
            Новый СертификатыУдостоверяющихЦентровWindows());
	
	Соединение = Новый HTTPСоединение("edupirfintech.sberbank.ru",9443,,,,,ssl1);
	
	HTTPЗапрос = Новый HTTPЗапрос("ic/sso/api/v2/oauth/token");
		
	HTTPЗапрос.Заголовки.Вставить("Content-Type", "Application/X-Www-Form-Urlencoded");
	HTTPЗапрос.Заголовки.Вставить("Accept", "application/json");
		
	СтруктураJSON = Новый Структура;
	СтруктураJSON.Вставить("grant_type", "authorization_code");
	СтруктураJSON.Вставить("code", Объект.КодАвторизации);
	СтруктураJSON.Вставить("client_id", Строка("00000"));
	СтруктураJSON.Вставить("redirect_uri", "https://00000/test");
	СтруктураJSON.Вставить("client_secret", "00000");
	
	ТекЗаписьJSON = Новый ЗаписьJSON;
	ТекЗаписьJSON.УстановитьСтроку();
	ЗаписатьJSON(ТекЗаписьJSON , СтруктураJSON);
	ТекстJSON = ТекЗаписьJSON.Закрыть();
	
	HTTPЗапрос.УстановитьТелоИзСтроки(ТекстJSON, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать);
	
	HTTPОтвет = Соединение.ВызватьHTTPМетод("POST",HTTPЗапрос);
	Сообщить(Строка(HTTPОтвет.КодСостояния) + " " +HTTPОтвет.ПолучитьТелоКакСтроку());
Показать
11. spacecraft 31.08.22 11:20 Сейчас в теме
(10)
HTTPЗапрос.Заголовки.Вставить("Content-Type", "Application/X-Www-Form-Urlencoded");

Сообщаете, что передаете в этом формате, в тело подсовываете json.
Это так не работает. Читайте про этот формат и передавайте именно в нем.
12. kh_xen 31.08.22 11:23 Сейчас в теме
(11) Пошла читать. Спасибо!
17. kh_xen 31.08.22 12:35 Сейчас в теме
(11) Пройдясь поиском по конфигурации наткнулась на ОМ ИнтеграцияССистемойВзаимодействия.
И там запрос формируется вот так:
СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресПубликацииСервисаУправления);
		Хост = СтруктураURI.Хост;
		ПутьНаСервере = СтруктураURI.ПутьНаСервере;
		Порт = СтруктураURI.Порт;
		
		Соединение = Новый HTTPСоединение(
			Хост,
			Порт,
			,
			,
			,
			,
			Новый ЗащищенноеСоединениеOpenSSL);
		
		ДанныеЗапроса = Новый Структура;
		ДанныеЗапроса.Вставить("control_code", КодУправления);
		ДанныеЗапроса.Вставить("method", ИмяМетода);
		
		ЗаписьJSON = Новый ЗаписьJSON;
		ЗаписьJSON.УстановитьСтроку();
		ЗаписатьJSON(ЗаписьJSON, ДанныеЗапроса);
		
		СтрокаЗапроса = ЗаписьJSON.Закрыть();
		
		Заголовки = Новый Соответствие;
		Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
		
		Запрос = Новый HTTPЗапрос(ПутьНаСервере, Заголовки);
		Запрос.УстановитьТелоИзСтроки(СтрокаЗапроса);
		
		Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Показать

Ну ведь тоже json подсунули, с тем же заголовком...

Ну ладно, смотрю дальше и натыкаюсь на модуль СинхронизацияСКалендаремGoogle.
И там запрос авторизации, ну прям как мой, даже параметры те же:
ЗапросHTTP = Новый HTTPЗапрос;
	ЗапросHTTP.АдресРесурса = АдресДляПолученияТокенаДоступа.ПутьНаСервере;
	ЗапросHTTP.Заголовки["Content-Type"] = "application/x-www-form-urlencoded";
	ЗапросHTTP.УстановитьТелоИзСтроки(
		СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			"code=%1&client_id=%2&client_secret=%3&redirect_uri=%4&grant­_type=authorization_code",
			КодРазрешения,
			ИдентификаторПриложения.client_id,
			ИдентификаторПриложения.client_secret,
			ИдентификаторПриложения.redirect_uri));
	
	ОтветHTTP = HTTPСоединение.ОтправитьДляОбработки(ЗапросHTTP);
Показать


В общем второй вариант из синхронизации с Гуглом рабочий. В ответе наконец-то получила долгожданную пару Access Token, Refresh Token.

Благодарю за наводку!
20. baasko 19.10.23 17:20 Сейчас в теме
8. user1326147 31.08.22 10:44 Сейчас в теме
https никаким снифером не посмотрите, только http/
13. EVKash 14 31.08.22 11:25 Сейчас в теме
(9) Есть еще http analyzer. Платный правда, но кого это останавливало для разового использования ;)
(8) Если правильно помню, то http analyzer показывает и https.
18. kh_xen 31.08.22 12:37 Сейчас в теме
(13) Спасибо за инфо! Учту если уж совсем прижмет. )
14. user1326147 31.08.22 11:41 Сейчас в теме
(13) Конечно зависит от web сервера, но серьезные сайты используют механизм hsts, а все просмотрщики https, основаны на понижении https до http, этот механизм не позволяет встать "мужику по середине" (MitM), от этого и
(5) Ставила Fiddler. При запущенном Fiddler при отправке запроса в 1С: Ошибка установки SSL-соединения.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

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

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

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)