Работа со сторонними сервисами по HTTPS (SSL) с использованием клиентского сертификата

1. Tomynoker 24.03.21 20:58 Сейчас в теме
Добрый день, коллеги.
Руководство решило интегрироваться с банком МКБ для приема платежей по 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);
Показать


Может кто сталкивался? Уже не знаю в какую сторону искать...
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. pyrkin_vanya 469 24.03.21 23:25 Сейчас в теме
4. ptolomei 25.03.21 13:33 Сейчас в теме
(1) попробуй конвертировать сертификат в другой формат, в нашем случае помогла конвертация сертификата в .pfx. и подключение через
Новый СертификатКлиентаФайл(Поставщик.Сертификат,Поставщик.Пароль)
6. VKislitsin 876 03.08.22 18:31 Сейчас в теме
(1) Tomynoker, удалось ли найти решение проблемы?
у меня через Новый СертификатКлиентаФайл(ИмяФайла, Пароль) работает, а с сертификатом, установленным в хранилище не удается запустить.
3. 1C-Maximus 25.03.21 09:27 Сейчас в теме
Пробовал, тогда отваливается по таймауту
5. Tomynoker 26.03.21 12:12 Сейчас в теме
7. gml 03.08.22 22:13 Сейчас в теме
Я тоже пытался подключить из хранилища, но не получилось.
Похоже, метод СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто) ищет в хранилище локальных сертификатов пользователя, от имени которого запущен сервис 1С, такой сертификат, у которого имя владельца (Subject) соответствует имени пользователя в ActiveDirectory. У нас в организации сертификаты выпускаются только на имена машин, и такие сертификаты не подхватывает 1С.

Сделал через файл в формате .pfx (в файл обязательно надо включать приватный ключ и как следствие - защищать его паролем).
Сертификат должен быть клиентским (иметь свойство Проверка подлинности Сервера и соответствующие параметры использования).
После этого работает метод СертификатКлиентаФайл(ИмяФайла, Пароль). Сертификат лежит в файловой системе сервера приложений 1С, права на доступ к файлу прописаны только для администраторов и пользователя, от имени которого запущен сервис 1С.
Проверить работоспособность сертификата можно с помощью браузера, попытавшись подключиться к Web-странице сервиса и выбрав из личного хранилища нужный сертификат. Браузеры соответствие имен клиентского сертификата и пользователя не проверяют. Успешная установка SSL/TLS -соединения означает, что Ваш сертификат работоспособен.
VKislitsin; +1 Ответить
Оставьте свое сообщение
Вакансии
Разработчик
Москва
зарплата от 150 000 руб. до 170 000 руб.
Полный день

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

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

Ведущий Инженер - программист 1С
Новокузнецк
зарплата от 100 000 руб.
Полный день

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