Форум: "Сети";
Текущий архив: 2011.05.29;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c