Имя: Пароль:
1C
1С v8
Веб сервис. Ошибка сертификата
,
0 Zixxx
 
06.12.13
13:13
Есть сервис https://gsd24.ru/RemoteAcc.asmx, при обращении к нему из 1с появляется ошибка "Peer certificate cannot be authenticated with known CA certificates"

Если правильно понимаю то на стороне сервиса указан сертификат которого нет в 1с-овском файле "cacert.pem". Запросил его у ребят со стороны сервиса, мне сказали что сертификата нет и какой требуется сказать не могут.

Как заставить 1с работать с этим сервисом и что еще необходимо?
1 roman844
 
06.12.13
13:15
у меня мозила не открывает твой сервис
2 Zixxx
 
06.12.13
13:24
(1) Блин, там по IP режут, не посмотреть так. Но если зайти по ссылке то отображается, типа перечисление методов

RemoteAcc

The following operations are supported. For a formal definition, please review the Service Description.

F1
F10
F11
F12
F13

Если перейти по ссылке F1

RemoteAcc

Click here for a complete list of operations.

F1

Test

The test form is only available for requests from the local machine.
SOAP 1.1

The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.

POST /RemoteAcc.asmx HTTP/1.1
Host: gsd24.ru
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/F1";

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">;
  <soap:Body>
    <F1 xmlns="http://tempuri.org/">;
      <p1>string</p1>
      <p2>string</p2>
      <p3>string</p3>
    </F1>
  </soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">;
  <soap:Body>
    <F1Response xmlns="http://tempuri.org/">;
      <F1Result>
        <xsd:schema>schema</xsd:schema>xml</F1Result>
    </F1Response>
  </soap:Body>
</soap:Envelope>
3 Zixxx
 
06.12.13
13:53
ап
4 Serginio1
 
06.12.13
13:59
Попробуй используя Net
v8: v8: Использование сборок .NET в 1С 7.x и 8.x

http://1c.proclub.ru/modules/mydownloads/personal.php?cid=120&lid=9569

Там есть пример вызова сервиса

    врап=новый COMОбъект("NetObjectToIDispatch45");
    // Можно использовать внешний конфигурационный фай    
    //    врап.ЗаменитьConfigFile("");
    Если ИспользоватьDefaultProxy Тогда
        Сообщить(врап.УстановитьDefaultProxy());    
    КонецЕсли;
    
    //Сборка=врап.загрузитьСборку("d:\MyPrograms\Test\NestNet45\NestNet45\bin\Debug\NestNet45.dll");
    Сборка=врап.загрузитьСборку(ИмяФайлаСборки);
    // Можно получить тип и используя сборку, что будет правильным
    //Сборка GetType("NestNet45.ServiceReference1.MorpherSoapClient");
    //Но в данном примере используется поиск в загруженных сборках
    типСервера=Сборка.GetType("NestNet45.ServiceReference1.MorpherSoapClient");
    
    типСервера=врап.ПолучитьТип("NestNet45.ServiceReference1.MorpherSoapClient");
    
    //Создаю экземляр NestNet45.ServiceReference1.MorpherSoapClient используя BasicHttpBinding
    //и remoteAddress
    
    remoteAddress =врап.СоздатьОбъект("System.ServiceModel.EndpointAddress",
    врап.СоздатьОбъект("System.Uri","http://www.morpher.ru/WebServices/Morpher.asmx";));
    привязка = врап.СоздатьОбъект("System.ServiceModel.BasicHttpBinding");
    
    прокси=врап.ПолучитьТип("System.Configuration.ConfigurationSettings").GetConfig("system.net/defaultProxy");
    Сообщить("прокси.Enabled="+прокси.Enabled);
    Сообщить("прокси.UseDefaultCredentials="+прокси.UseDefaultCredentials);
    сервер=врап.СоздатьОбъект(типСервера,привязка,remoteAddress);
    
    
    
    // Вызываю метод и вывожу результат
    рез = сервер.GetForms("Ваяся Пупкин");
    
    Для каждого стр  Из рез Цикл
        сообщить(стр)
    КонецЦикла;
5 Zixxx
 
06.12.13
14:12
(4) Нет, должно быть все проще, нужно получить сертификат и поместить его в файл cacert.pem

Каким путем с веб-сервиса можно загрузить сертификаты?
6 Infsams654
 
06.12.13
14:13
(5) на эту тему много чего было, например
http://infostart.ru/public/79494/
Не слушай (4), он все время впаривает .net
7 Serginio1
 
06.12.13
14:22
(6) Ну не всегда. Может ты меня с кем то путаешь? А что касается сложных вариантов то я предпочитаю Net что бы не тратить зря время.
А вот слушать всегда нужно.
8 Serginio1
 
06.12.13
14:23
9 Zixxx
 
06.12.13
14:24
(6) По ссыле прочитал, но там в самом начале пишут...
"Для начала нужен сам сертификат веб-сервиса. Затем нужно скачать утилиты Open-SSL".
Так как тогда мне сначала сертификат веб-сервиса получить?
10 Infsams654
 
06.12.13
14:32
(9) очень просто. Наверняка он уже у есть в броузере. Если IE, то в свойствах Содержание - Сертификаты находишь сертификат этого CA (скорее всего будет Digi Cert), выгржаешь в файли и далее по инструкции
11 oleg_km
 
06.12.13
14:38
(6) У меня с .НЕТом зато все работает, а вы продолжаете мучить кактус.

(10) В содержании есть только установленные в хранилище сертификаты. Сертификат не устанавливется в хранилище просто при посещении сайта

(9) Так у тебя в браузере ссылка открывается? Если да тогда значит браузер скачивает сертификат. Его можно открыть, нажав кнопочку возле строки навигации
12 Infsams654
 
06.12.13
14:44
(11) кактус .НЕТом мучают
13 oleg_km
 
06.12.13
14:46
(12) мучают, мучают
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн