|
Подключение к HTTP-сервису с авторизацией посредством передачи клиентского SSL-сертификата | ☑ | ||
---|---|---|---|---|
0
wmonref
09.06.23
✎
17:50
|
Пытаюсь реализовать подключение следующим образом:
Сконвертировал файл .cer в .p12 сначала. Потом: SSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаФайл("C:\Program Files\OpenSSL\bin\cert.p12", "пароль")); Соединение = Новый HTTPСоединение(Сервер,,,,,,SSL,); Подскажите пожалуйста, есть другой способ кроме конвертирования .cer в .p12? |
|||
1
lodger
09.06.23
✎
18:15
|
stunnel прикрутить рядом, и лазить в него без ssl
|
|||
2
wmonref
12.06.23
✎
12:14
|
Пытаюсь послать SOAP конверт следующего содержания
s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <requestSignXAdES xmlns="http://sign.server.procertum.unizeto/"> <certificate %Сертификат в BASE64% </certificate> <contentType xmlns="">application/octet-stream</contentType> <data xmlns="">%данные%</data> <signatureType xmlns="">ENVELOPING</signatureType> <validationDataFormat xmlns="">XADES</validationDataFormat> </requestSignXAdES> </s:Body> </s:Envelope> Сертификат в Base64 получаю следующим образом: СертДвоичнДанные = Новый ДвоичныеДанные("e:\Install\testq.cer"); СертБасе64 = ПолучитьСертификатBase64Строку(СертДвоичнДанные); Функция ПолучитьСертификатBase64Строку(ДвоичнДанные) Экспорт СтрокаBase64 = Base64Строка(ДвоичнДанные); Значение = СтрЗаменить(СтрокаBase64, Символы.ВК, ""); Значение = СтрЗаменить(Значение, Символы.ПС, ""); Возврат Значение; КонецФункции В ответ получаю 400 The SSL certificate error ЧЯДНТ? |
|||
3
wmonref
12.06.23
✎
14:49
|
Кстати, вставлять данные сертификата в cacert.pem тоже еще надо?
|
|||
4
wmonref
12.06.23
✎
22:09
|
Помогите пожалуйста разобраться с подключением... Всегда один и тот же ответ получаю: 400 The SSL certificate error
Порядок действий: Получил от владельцев сайта сертификат в формате .p12 Установил сертификат для текущего пользователя. Добавил данные в cacert.pem из инструкции по ссылке (https://www.cs-cart.ru/docs/4.3.x/manager/commerceml/1c/https/) Код в 1С: ССЛ = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаФайл("e:\Install\pki.p12","пароль")); Хост = "fglrr-site.its"; HTTPСоединение = Новый HTTPСоединение(Хост, , , , , ,ССЛ,); HTTPЗапрос = Новый HTTPЗапрос("/XAdES-TesT/Sign?WSDL"); СтрокаXML = " "<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"" | <s:Body xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""> | <requestSignXAdES xmlns=""http://sign.server.procertum.unizeto/""> | <certificate xmlns="">%СертБасе64%</certificate> | </requestSignXAdES> | </s:Body> |</s:Envelope>"; СертДвоичнДанные = Новый ДвоичныеДанные("e:\Install\testq.cer"); СертБасе64 = ПолучитьСертификатBase64Строку(СертДвоичнДанные); СтрокаXML = СтрЗаменить(СтрокаXML,"%СертБасе64%",СертБасе64); HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаXML); Результат = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); Ответ = Результат.ПолучитьТелоКакСтроку(); Сообщить(Ответ); В результате получаю: 400 The SSL certificate error. Через браузер все работает, через Postman тоже все ок. Платформа 8.3.20.1710, обычные формы, клиент-серверная |
|||
5
Тихий омут
13.06.23
✎
07:25
|
Может, попробовать p12 конвертнуть в pfx? Попадалась информация, что в платформе реализация SSL несколько урезанная, поэтому нужны дополнительные телодвижения. На истину не претендую:)
|
|||
6
wmonref
13.06.23
✎
13:48
|
(5) так вроде бы для подключения из 1С обязательно сертификат должен быть в формате .p12
Вот тут: ССЛ = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаФайл("e:\Install\pki.p12","пароль")); Во всяком случае, нам выдали сначала сертификат в формате .pfx. Пробовал с ним но тщетно |
|||
7
oleg_km
13.06.23
✎
14:59
|
А этот сертификат ГОСТ?
|
|||
8
wmonref
13.06.23
✎
15:32
|
(7) нет
|
|||
9
wmonref
15.06.23
✎
22:00
|
up!
|
|||
10
wmonref
15.06.23
✎
22:01
|
Установил сертификат в Личные для пользователя USR1CV8. Результат тот же...
|
|||
11
wmonref
15.06.23
✎
22:58
|
Кстати, если использовать
ССЛ = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаФайл("e:/!work/pki.p12", "123"), Новый СертификатыУдостоверяющихЦентровФайл("e:/!work/pki.p12.pem")); (.pem файл от того же pki.p12) то платформа выводит ошибку "Ошибка работы с Интернет: Удаленный узел не прошел проверку" |
|||
12
wmonref
18.06.23
✎
17:03
|
Ап
|
|||
13
wmonref
25.06.23
✎
18:17
|
Решил проблему через COMОбъект("WinHttp.WinHttpRequest.5.1")
|
|||
14
lodger
26.06.23
✎
12:26
|
суммируя (13) и (11), похоже что всё работает, просто ТС не разобрался как правильно вызывать конструктор ЗащищенноеСоединениеOpenSSL
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |