Доброго времени суток всем!
Проблема вот в чём. Мне нужно отправить запрос из 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, который работает с собственным аккаунтом. Вот его то и надо было поменять на того, под чьим аккаунтом устанавливался сертификат. Теперь всё работает.