Имя: Пароль:
1C
1С v8
Работа со сторонними сервисами по HTTPS (SSL) с использованием клиентского сертификата
0 Tomynoker
 
24.03.21
20:46
Добрый день, коллеги.
Руководство решило интегрироваться с банком МКБ для приема платежей по QR-коду, обязателен сертификат и подключение по HTTPS с заявленного IP. Столкнулся со следующей проблемой - банк предоставил клиентский сертификат, вот с ним и ничего не получается. И в систему установил (в корневые доверенные), и в чистом виде его 1С-ке передавал, и в cacert.pem добавил - результат один:
"Ошибка работы с Интернет:  Failure when receiving data from the peer"
Код проще некуда
    стСтруктураДанныхJSON = Новый Структура;
    ....................................
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, " ", Истина);  
    ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
    
    ЗаписатьJSON(ЗаписьJSON, стСтруктураДанныхJSON);
    СтрокаJSON = ЗаписьJSON.Закрыть();
    
    ssl = Новый ЗащищенноеСоединениеOpenSSL(//);
            //Новый СертификатКлиентаФайл("D:\filename.p12", "password"),
            Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
            Новый СертификатыУдостоверяющихЦентровWindows());  
    
    HTTPСоединение = Новый HTTPСоединение("host", port,,,,, ssl);
    Заголовки = Новый Соответствие;
        .................................
    
    запросPOST = Новый HTTPЗапрос("address", Заголовки);
    запросPOST.УстановитьТелоИзСтроки(СтрокаJSON, "utf-8", ИспользованиеByteOrderMark.НеИспользовать);
    
    Ответ = HTTPСоединение.ОтправитьДляОбработки(запросPOST);

Может кто сталкивался? Уже не знаю в какую сторону искать...
1 Garykom
 
гуру
24.03.21
20:58
(0) Нужна винда и свежая платформа 1С
Ну или stunnel
2 arsik
 
гуру
24.03.21
21:01
(0) Из браузера попробуй. Ну и вообще браузером то туда заходит? Что по безопасности пишет?
3 Tomynoker
 
24.03.21
21:07
(2) Браузер предлагает выбрать сертификат, а потом ругается на GET
"Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Wed Mar 24 21:04:04 MSK 2021
There was an unexpected error (type=Method Not Allowed, status=405).
Request method 'GET' not supported"

Postman вообще пробиться не может
{
    "timestamp": "2021-03-24T18:05:55.430+0000",
    "status": 526,
    "error": "Http Status 526",
    "message": "Invalid SSL Certificate",
    "path": "..........."
}
4 Tomynoker
 
24.03.21
21:18
(3) Насильственно прописал сертификат в Postman - заработало, получил  корректный отклик, значит что-то я неверно сделал в 1С
5 Garykom
 
гуру
24.03.21
21:41
6 Tomynoker
 
25.03.21
09:36
(5) Видел, пробовал, не помогло
7 arsik
 
гуру
25.03.21
09:46
(6) У тебя сертификат валидность то проходит? Вся цепочка присутствует? Что в закладке путь сертификации?
8 Tomynoker
 
25.03.21
10:03
(7) Postman с этим сертификатом корректный отклик получает.

Что за закладка "путь сертификации"?
9 arsik
 
гуру
25.03.21
11:00
10 Tomynoker
 
25.03.21
11:32
11 arsik
 
гуру
25.03.21
11:40
(10) Ну так сделай его валидным. Что бы вся цепочка сертификатов была.
12 arsik
 
гуру
25.03.21
11:40
Банк скорее всего еще и корневой сертификат тебе должен дать. Поищи.
13 Tomynoker
 
25.03.21
12:12
(12) Postman проходит, значит с самим сертификатом все ок, что-то я именно в 1С неверно делаю
14 arsik
 
гуру
25.03.21
13:03
(13) Я думаю ты ошибаешься.