Сертификат не принимает при подключении из ТС по https

В скрипте ТС подключаюсь по https. "Соединение не установлено" т к сертификат не принят. В браузере это побороть можно - просто ввожу в список сертификатов мой и никаких окошек с предупреждениями нет больше, заходит без ращговоров. Как это сделать в ТС?

Нравится

10 комментариев

Здравствуйте.
Подключение клиентского приложения Террасофт по TSP\IP с использованием SSL не реализовывалось. Есть возможность подключения с использованием сертификатов через web-сервисы (настройка описана в руководстве администратора, также рекомендации есть по ссылке: http://www.community.terrasoft.ru/blogs/5138).
С уважением, Terrasoft Support Team.

Анна, быть может вы имеете в виду обращение по https к стороннему веб-методу? Если да - то какой объект вы используете для его вызова?

Для объектов типа MSXML2.XMLHTTP - сертификат необходимо установить в IE. Если используется самоподписанный сертификат, то можно подавить ошибки с предупреждением, Google говорит - для этого перед вызовом веб-метода добавить строку

xmlHttpRequest.setOption(2) = 13056

Из ТС в биллинг отправляется инормация. Делается так:

function createRequestObject() {  
    var request = null;
 
    try {
	    request=new ActiveXObject('Msxml2.XMLHTTP.6.0');
    } catch (e){
    }
 
    if(!request) try {  
        request=new ActiveXObject('Microsoft.XMLHTTP');
    } catch (e){
    }
 
    if(!request) try {
        request=new XMLHttpRequest();
    } catch (e){
    }  
    return request;
}

Пока делали в тестовом режиме, админ биллинга проверку сертификатов отключил, все работало.
В IE сертификат ставила как доверенный и в IE сразу идет запрос логин/пароля без проверки. Этого мало, в ТС запрашивает.
Попробую setOption(2), отпишусь.
Спс)

//var objXMLDocument; 
request = new ActiveXObject( "Msxml2.ServerXMLHTTP.6.0"); 
//objXMLDocument = new ActiveXObject("Msxml2.DOMDocument.6.0"); 
request.open ('POST', url, true, LogInAbb, password); 
request.send (data);
while (request.readyState != 4)
{
    request.waitForResponse(1000); 
}
if(request.readyState == 4)
{
   if (request.status == 200) 
   { ... 
   }else if(request.status == 500) 
   { 
          System.MessageDialog('Проверьте корректность введенных данных.', mdtWarning, mdbOK, 0);	 
          return 0; 
   }else 
   { 
       var showmessage = 'Ошибка подключения. Проверьте настройки подключения.'; 
       return 0; 
   }

В результате: request.status = 401

Что не так?

Если запускаю клиент ТС на Windows Server 2008 32 - работает
Если на Windows Server 2008 64 или Windows 7 - ошибка 401

Воспользуйтесь отладчиком типа Fiddler и сравните результат в случае использования на обеих ОС.

Воспользуйтесь отладчиком типа Fiddler и сравните результат в случае использования на обеих ОС.

"Гакало Игорь Александрович" написал:

Воспользуйтесь отладчиком типа Fiddler и сравните результат в случае использования на обеих ОС.


А как именно им воспользоваться? Я ввожу строку подключения на своем серваке и на сервере клиента. У меня удачно подключается, у клиента ошибка 401. А как более точно посмотреть, в чем причина ошибки, не подскажете?

Анна, хорошее описание по работе с Fiddler можно найти здесь:
http://www.cyberguru.ru/dotnet/asp-net/http-fails-page2.html
http://softive.ru/2009/03/05/fiddler/

Спс Сергею из Террасофта :twisted:

Показать все комментарии