Сертификат
Интеграция и импорт данных
Разработка

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

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

Нравится

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

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

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

Для объектов типа MSXML2.XMLHTTP - сертификат необходимо установить в IE. Если используется самоподписанный сертификат, то можно подавить ошибки с предупреждением, Google говорит - для этого перед вызовом веб-метода добавить строку
[javascript]
xmlHttpRequest.setOption(2) = 13056
[/javascript]

Из ТС в биллинг отправляется инормация. Делается так:
[code]
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;
}
[/code]
Пока делали в тестовом режиме, админ биллинга проверку сертификатов отключил, все работало.
В IE сертификат ставила как доверенный и в IE сразу идет запрос логин/пароля без проверки. Этого мало, в ТС запрашивает.
Попробую setOption(2), отпишусь.
Спс)

[code]
//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;
}
[/code]

В результате: 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:

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