Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: curl SSL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
cowboyl0l
Отправлено: 06 Января, 2015 - 17:05:49
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2015  


Помог: 0 раз(а)




здравствуйте, подскажите пожалуйста.
есть авторизация.
https://supply[dot]elfmoney[dot]ru/login/?next=/
с csrfmiddlewaretoken, и ssl. подскажите что не так делаю.
1 шаг - парсю токен, 2ой пытаюсь отправить данные для авторизации, на что получаю ответ
CODE (text):
скопировать код в буфер обмена
  1. Ошибка curl: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failedhuy



PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $a = getSslPage("https://supply.elfmoney.ru/login/");
  4. $pos = strpos($a,"csrfmiddlewaretoken");
  5. $a = substr($a,$pos+28);
  6. $pos = strpos($a,"' />");
  7. $token = substr($a,0,$pos);
  8. echo $token;
  9.  
  10. $login = "login";
  11. $password = "pass";
  12. $user_agent = 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0';
  13. $url = "https://supply.elfmoney.ru/login/";
  14.        
  15. $ch = curl_init();
  16.  
  17. curl_setopt($ch, CURLOPT_POST, true);
  18. curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
  19. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  20. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . 'cookie.txt');
  21. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . 'cookie.txt');
  22. curl_setopt($ch, CURLOPT_HEADER, true);
  23. curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  24. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  25. curl_setopt($ch, CURLOPT_REFERER, $url);
  26. curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 1);
  27.    
  28. curl_setopt($ch, CURLOPT_HEADER, false);
  29.  
  30.  
  31. curl_setopt($ch, CURLOPT_URL, 'https://supply.elfmoney.ru/accounts/login/');
  32.  
  33.  
  34. $post = array(
  35. 'csrfmiddlewaretoken' => $token,
  36. 'next' => '/new/',
  37. 'password' => $password,
  38. 'username' => $login
  39. );
  40.  
  41. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
  42. $answer = curl_exec($ch);
  43.  echo 'Ошибка curl: ' . curl_error($ch);
  44. echo $answer;
  45.  
  46.  
  47. function getSslPage($url) {
  48.     $ch = curl_init();
  49.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  50.     curl_setopt($ch, CURLOPT_HEADER, false);
  51.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  52.     curl_setopt($ch, CURLOPT_URL, $url);
  53.     curl_setopt($ch, CURLOPT_REFERER, $url);
  54.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  55.     $result = curl_exec($ch);
  56.     curl_close($ch);
  57.     return $result;
  58. }
  59. ?>
  60.  
 
 Top
KingStar
Отправлено: 06 Января, 2015 - 23:49:37
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




для авторизации требуется сертификат с ключами
(Добавление)
смотри в сторону параметров cUrl

PHP:
скопировать код в буфер обмена
  1. CURLOPT_SSLCERT
  2. CURLOPT_SSLCERTPASSWD


-----
То что программа работает, не означает что она написана правильно!
 
 Top
cowboyl0l
Отправлено: 07 Января, 2015 - 00:55:32
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2015  


Помог: 0 раз(а)




Спасибо, но дело в том что я все равно не понимаю где его взять, был бы очень благодарен если бы вы пояснили детальнее, я попробовал экспортировать с браузера но, видимо не тот сертификат, нужен .pem а браузер даже не предлагает выгрузить такой формат, к тому же, посмотрев структуру pem, она отличается от выгруженного мной.
попробовал дать его скрипту
Ошибка curl: unable to use client certificate (no key found or wrong pass phrase?)
Однако
 
 Top
KingStar
Отправлено: 07 Января, 2015 - 10:37:18
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




существует несколько типов сертификатов, и самые навороченные стоят кучу денег
просто так никто ключи и сертификаты не раздают, и Вам врядле доведется их заполучить
(Добавление)
объясню немного по русски... Когда Вы работаете в браузере, сертификаты проверяют наличие прав, первое и самое простое - это домен. Когда работаете в браузере, то тут все ясно - Вы работаете в нужном домене, а когда работаете удаленно - то работаете на отличном от него, и т.о. работа запрещена, поэтому для удаленной работы в протоколе https подключаются сертификат с открытым ключем, который в свою очередь генерируется с помощью закрытого ключа, тем самым предоставляя доступ к защищенным данным. Это косается сайтов с более навороченными сертификатами, и получить их можно только в согласовании с владельцем.

Вот как-то так, с формулировкой и принципом работы могу немного ошибаться, но в общем вот такой вот принцип. Как-то доводилось работать с таким вот протоколом удаленно, на что предоставлялись именно тот самый открытый ключ и сертификат


-----
То что программа работает, не означает что она написана правильно!
 
 Top
cowboyl0l
Отправлено: 07 Января, 2015 - 12:28:54
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2015  


Помог: 0 раз(а)




Т.е. что бы получить сертификат нужно обращаться к владельцу web сайта? Браузер же как открывает без этих запросов... разве нельзя эмулировать работу браузера и получать в ответ обычные страницы(используя curl)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB