Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.05.29;
Скачать: CL | DM;

Вниз

Indy + SSL = не могу залогиниться   Найти похожие ветки 

 
CaptainAlex   (2009-03-20 09:58) [0]

Может посоветуете что? Задача - залогиниться на сайт по https. Запрос уходит, а возвращается эта же страница, т.е. логина не происходит. Все dll есть и все что можно вроде бы добавлено и проверено :( Или мне нужно установить сертификат с этого сайта?
Сайты пробовал разные, поведение одинаковое.

Вот такой код есть:

 HTTP := TidHTTP.Create(nil);
 HTTP.AllowCookies := true;
 HTTP.HandleRedirects := true;
 HTTP.Intercept := Form1.IdLogFile1;
 FUseSLL := true;
 if FUseSLL then
 begin
   SSLIO := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP);
   HTTP.IOHandler := SSLIO;
   SSLIO.SSLOptions.Method := sslvSSLv3;
   HTTP.Request.BasicAuthentication := true;
   HTTP.ReadTimeout := 40000;
 end;
 Params := TStringList.Create;

 Params.Clear;
 Params.Add(GetLoginParam("Username") + "=" + GetLogin);
 Params.Add(GetLoginParam("Password") + "=" + GetPassword);
 HTML := HTTP.Post(GetLoginParam("PostURL"), Params);

Поля, их значения и URL возвращаются функциями корректно. Для проверки кода можно использовать:

Params.Add(GetLoginParam("login=delphikingdom");
Params.Add(GetLoginParam("password=delphi");
HTML := HTTP.Post("https://www.fotolia.com/Member/Login", Params);


 
Palladin ©   (2009-03-20 10:03) [1]


> Или мне нужно установить сертификат с этого сайта?

именно


 
Медвежонок Пятачок ©   (2009-03-20 10:17) [2]

интересно куда его надо установить, если ссл не работает с виндовыми хранилищами сертификатов .....


 
Palladin ©   (2009-03-20 10:21) [3]

на диск :)


 
Palladin ©   (2009-03-20 10:22) [4]

вообще рекомендую выбросить indy и работать с WinInet


 
CaptainAlex   (2009-03-20 11:36) [5]

Итак, я могу забрать с сайта сертификат *.crt, что мне с ним делать дальше. Indy  же нужен pem, правильно я понимаю? Можно алгоритм действий?

2Palladin
можно пример на WinInet? Я не очень с этим делом знаком.


 
Palladin ©   (2009-03-20 11:59) [6]


> можно пример на WinInet?

пример чего конкретно?


 
Медвежонок Пятачок ©   (2009-03-20 12:15) [7]

Итак, я могу забрать с сайта сертификат *.crt,

сертификат сам прилетает с сайта в ответе на гет или пост клиента.
твоя задача - сказать в обработчике клиента, принимаешь ты его или нет.
сам сертификат никуда пихать не надо.


 
CaptainAlex   (2009-03-20 13:20) [8]

2Palladin

Пример обращения к сайту с использованием SSL в самом простейшем случае. Хочется уяснить как обращаться с сертификатами на клиенте.

2 Медвежонок Пятачок

Где именно нужно этот сертификат отловить? В заголовках про него ничего нет. Нужно ли как-то по-особенному его запрашивать? Если есть пример как это сделать средствами Indy, было бы здорово посмотреть.
Могу выложить лог, который дает TIdLogFile


 
Медвежонок Пятачок ©   (2009-03-20 13:39) [9]

не надо никого ловить.
Пиши обработчик OnverifyPeer и возвращай из него True


 
Palladin ©   (2009-03-20 14:04) [10]

hInet:=InternetOpen("WRWinInet",INTERNET_OPEN_TYPE_PRECONFIG,Nil,Nil,0);
hConn:=InternetConnect(hInet,PChar(p_strHost),INTERNET_DEFAULT_HTTPS_PORT,Nil,Ni l,INTERNET_SERVICE_HTTP,0,1);
hReq:=HttpOpenRequest(hConn,"POST",PChar(p_strDoc),Nil,Nil,Nil,INTERNET_FLAG_SEC URE or INTERNET_FLAG_IGNORE_CERT_CN_INVALID or INTERNET_FLAG_KEEP_CONNECTION,1);
HttpSendRequest(hReq,PChar(strHdrs),Length(strHdrs),PChar(p_strData),Length(p_st rData))


 
CaptainAlex   (2009-03-20 14:24) [11]

Обработчик написал, работает как и прежде :( В остальных обработчиках надо что-то писать?


 
CaptainAlex   (2009-03-20 14:25) [12]

Palladin, спасибо


 
CaptainAlex   (2009-03-20 15:15) [13]

SSLOptions.VerifyMode на что-то влияет в данном случае? у меня там пусто сейчас.



Страницы: 1 вся ветка

Текущий архив: 2011.05.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
2-1297944223
Ghost del vonte
2011-02-17 15:03
2011.05.29
Указатель на последниий компонент потока


15-1297167332
Копир
2011-02-08 15:15
2011.05.29
Страна дураков или?


3-1259497210
Sirus
2009-11-29 15:20
2011.05.29
RefreshSQL в ZeosDBO PostgreSQL


15-1297056537
Дмитрий С
2011-02-07 08:28
2011.05.29
"Теплый ламповый" hdmi


2-1297946261
Andy BitOff
2011-02-17 15:37
2011.05.29
Линии...