Проблема с передачей запроса SSL
От: mrAld Россия http://mrAld.narod.ru
Дата: 05.06.07 14:31
Оценка:
Доброго времени суток всем!
Проблема вот в чём. Мне нужно отправить запрос из ASP (не важно какой) по https,
для этого я использую MSXML2.ServerXMLHTTP. В кратце это выгледет так:
var objSrvHTTP = Server.CreateObject( "MSXML2.ServerXMLHTTP" );
objSrvHTTP.open ( "POST" , URL , false );
objSrvHTTP.setOption( 3 , CERT );
try{objSrvHTTP.send();}
catch(er)
{
Response.Write(er.message)}
ОСЬ Win2003Server, сертификат CERT валидный, URL верный (чтобы не сомневались). Эта вещь не работает, на стадии send() возвращает ошибку:A certificate is required to complete client authentication
т.е. после анализа причины я прихожу к выводу, что этот объект ServerXMLHTTP просто не видит ни один сертификат. При этом если я те же строчки вставлю, скажем, в Дельфи, то всё работает чудесно.
IIS запускается под учётной записью админа системы, как и всё остальное. Получается, что ServerXMLHTTP, запущеный в потоке приложения, видит сертификаты, а в потоке IIS — нет.
Может кто знает, в чём фишка? Все хэлпы излазил — даже пол-намёка нет на решение проблемы.
Re: Проблема с передачей запроса SSL
От: Аноним  
Дата: 06.06.07 09:27
Оценка:
A>Доброго времени суток всем!
A>Проблема вот в чём. Мне нужно отправить запрос из ASP (не важно какой) по https,
A>для этого я использую MSXML2.ServerXMLHTTP. В кратце это выгледет так:
A>var objSrvHTTP = Server.CreateObject( "MSXML2.ServerXMLHTTP" );
A> objSrvHTTP.open ( "POST" , URL , false );
A> objSrvHTTP.setOption( 3 , CERT );
A> try{objSrvHTTP.send();}
A> catch(er)
A> {
A> Response.Write(er.message)}
A>ОСЬ Win2003Server, сертификат CERT валидный, URL верный (чтобы не сомневались). Эта вещь не работает, на стадии send() возвращает ошибку:A certificate is required to complete client authentication
A>т.е. после анализа причины я прихожу к выводу, что этот объект ServerXMLHTTP просто не видит ни один сертификат. При этом если я те же строчки вставлю, скажем, в Дельфи, то всё работает чудесно.
A>IIS запускается под учётной записью админа системы, как и всё остальное. Получается, что ServerXMLHTTP, запущеный в потоке приложения, видит сертификаты, а в потоке IIS — нет.
A>Может кто знает, в чём фишка? Все хэлпы излазил — даже пол-намёка нет на решение проблемы.

Проблема решена. В общем подтвердилось то, что я предполагал. Только в IIS6 есть такой сервис AppPools, который работает с собственным аккаунтом. Вот его то и надо было поменять на того, под чьим аккаунтом устанавливался сертификат. Теперь всё работает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.