nixp.ru v3.0

22 января 2017,
воскресенье,
11:03:45 MSK

DevOps с компанией «Флант»
Аватар пользователя Toha
Toha написал 28 мая 2006 года в 19:04 (2295 просмотров) Ведет себя неопределенно; открыл 23 темы в форуме, оставил 68 комментариев на сайте.

Мучаюсь вторую неделю. Я очень слабо знаю перл поэтому прошу помощи.

Условия задачи:

На удаленном хосте за SSL находится форма для ввода 1 строки и кнопкой подтверждения. я хочу создать скрипт который будет перебирать строки для ввода и подставлять их поочереди в форму.

Проблема: Никак не могу справиться с SSL.

Вот что у меня получилось (точнее нашлось в инете)

#!/usr/bin/perl

use LWP::UserAgent;

my $ua = LWP::UserAgent->new;

$ua->agent(«Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)»);

$url = «https://some_host.ru/cgi-bin/dir/script.pl»;

my $req = HTTP::Request->new(GET => $url);

my $res = $ua->request($req);

if ($res->is_success)

{

print «Content-Type: text/html\n\n»;

print $res->as_string;

}

else

{

print «Content-Type: text/html\n\n»;

print «Error: » . $res->status_line . «\n»;

}

Эта фигня не работает! Выдает:

Error: 501 Protocol scheme 'https' is not supported

Нашел инфу по этой бодяге:

http://www.linpro.no/lwp/libwww-perl/README.SSL

Английский знаю плохо.

C переборкой данных и обработкой вывода справлюсь сам.

Помогите с SSL.

Замаялся конкретно. Если будет время подумать и помочь буду очень

благодарен.

Toha

Да совсем забыл «мучаюсь» я под Виндой и с Денвером(http://www.denwer.ru)

Так что если это ограничения сервака то как их можно обойти?(кроме смены платформы)

Toha

Да блин.. мертвый форум..

Пока ждал переделал на ПХП с CURL

Вот

<?php
$ch = curl_init («https://some_host/cgi-bin/dir/script.pl»);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 1);
$ng=curl_exec ($ch);
if ($ng){
echo $ng;
}
else {
echo curl_error($ch);
}
curl_close ($ch);
?>

Теперь новая ошибка (я так понимаю не проходит проверка ССЛ-сертификата)

SSL certificate problem, verify that the CA cert is OK. Details:

error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Вопрос можно ли отказаться от проверки сертификата и принять его в любом виде?

Genie
Эта фигня не работает! Выдает:

Error: 501 Protocol scheme 'https' is not supported

ясно же LWP ругается: протокол https не поддерживается.

Нашел инфу по этой бодяге:

http://www.linpro.no/lwp/libwww-perl/README.SSL

Английский знаю плохо.

эхххэ.. ну, http://translate.ru/ давно отменили?

Да блин.. мертвый форум..

да уж.. и не говори.. никто ничего не пишет..

Теперь новая ошибка (я так понимаю не проходит проверка ССЛ-сертификата)

SSL certificate problem, verify that the CA cert is OK. Details:

error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Вопрос можно ли отказаться от проверки сертификата и принять его в любом виде?

ну да. правильно понимаешь. только сам-то от CURL что просишь?

curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 1);

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

Toha

> эхххэ.. ну, http://translate.ru/ давно отменили?

Ходил… переводил… не проникся

Еще как только нашел перевел понял что LWP не поддерживает SSL но не понял как это вылечить.

> curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 1);

> я, конечно, не разбирался, но есть смутное подозрение, что этим ты проверку и > запрашиваешь.

Я пробовал разные значения (0,1,2) ничего не помогает.Ответ один.

Если кто то знает как справиться с LWP или cURL Помогите пожалстя.

myst

> > эхххэ.. ну, http://translate.ru/ давно отменили?

> Ходил… переводил… не проникся

Попробуй учебники Бонка и Мэрфи (который Рэймонд). Может проникнешся…

> > > curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 1);

> > я, конечно, не разбирался, но есть смутное подозрение,

> > что этим ты проверку и запрашиваешь.

> Я пробовал разные значения (0,1,2) ничего не помогает. Ответ один.

Мдяааа… а при чём тут 1,2,3? Ясно же что Genie говорил про CURLOPT_SSL_VERIFYHOST. Ты не эстонец случайно? :))

Toha
myst
> Я пробовал разные значения (0,1,2) ничего не помогает. Ответ один.

Мдяааа… а при чём тут 1,2,3? Ясно же что Genie говорил про CURLOPT_SSL_VERIFYHOST. Ты не эстонец случайно? :))

Я не сомневаюсь в своей национальности но формат следующий:

curl_setopt ([идентификатор сессии ], [опция], [значение опции] о);

Следовательно я устанавливал переменную

CURLOPT_SSL_VERIFYHOST в значения 0,1,2. которые у нее предусмотрены

Цитирую мануал

CURLOPT_SSL_VERIFYHOST: Задает проверку имени, указанного в сертификате удаленного сервера, при установлении SSL соединения. Значение 1 означает проверку существования имени, значение 2 — кроме того, и проверку соответствия имени хоста.

я так понимаю что сертификат на серваке на кот. я конекчусь неправильный. Проблема в том как отключить проверку валидности сертификата.

P.S.(извиняюсь за офтоп, myst вынудил) Не надо неразобравшись называть людей эстонцами. Не надо думать что ты самый умный. Следи за собой и будь осторожен.

myst

Я оччень осторожен, более того — я параноик. :))

Toha

Несмотря на прикольную игруху РБТ помогли мне по другому адресу

http://forum.dklab.ru/denwer/packages/Perl+sslPomogiteSSsl.html

Для тех кому лень лазать перепишу:

Salvatore:

To do this you must install Crypt-SSLeay module for perl. Just

ppm install http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd


Toha:

Все заработало. только ссылочка мне не подошла.

Мне подошло http://theoryx5.uwinnipeg.ca/ppmpackages/Crypt-SSLeay.ppd

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.