Je n'arrive pas à obtenir https via un proxy.Problèmes de proxy https Perl
Exemple:
require LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->proxy('https', 'https://proxy:8080');
# $ua->proxy(['https'], 'https://proxy:8080'); # Fails
# $ua->env_proxy; # This also fails.
my $response = $ua->get('https://aws.amazon.com/cloudwatch/');
if ($response->is_success) {
print $response->decoded_content; # or whatever
}
else {
die $response->status_line;
}
Résultat:
500 Impossible de se connecter à aws.amazon.com:443 (délai d'attente) à la ligne de test.pl 17.
Mais si j'essaie le même proxy avec curl (aussi wget) cela fonctionne très bien.
$ curl --head --proxy https://proxy:8080 https://aws.amazon.com/cloudwatch/
HTTP/1.1 200 Connection established
HTTP/1.1 200 OK
Server: Server
Date: Thu, 08 Dec 2016 16:42:01 GMT
Content-Type: text/html;charset=UTF-8
Content-Length: 214187
versions Perl
$ perl -MLWP -le "print(LWP->VERSION)"
6.15
$ perl --version
This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi
J'ai aussi essayé avec et sans ces:
export HTTPS_VERSION=3
export PERL_NET_HTTPS_SSL_SOCKET_CLASS="Net::SSL"
export PERL_LWP_ENV_PROXY=1
export PERL_LWP_SSL_VERIFY_HOSTNAME=0
Mon objectif actuel est d'obtenir aws-scripts-mon travailler ici sur une machine derrière un proxy mais utilise également LWP::UserAgent
donc si je fais fonctionner cela alors ça va probablement aussi.
Ajout d'information
Il se avère que si je change à http par $ua->proxy('http', 'http://proxy:8080');
et d'accéder à une URL http alors il fonctionne très bien. Le problème est que j'ai besoin de cela pour travailler avec https.
L'erreur de mon-put-instance-data.pl
est:
./mon-put-instance-data.pl --mem-util --disk-space-util --disk-path=/
ERROR: Failed to call CloudWatch: HTTP 500. Message: Can't connect to monitoring.eu-west-1.amazonaws.com:443 (timeout)
LWP::Protocol::https::Socket: connect: timeout at /usr/local/share/perl5/LWP/Protocol/http.pm line 47.
Pourquoi avez-vous 'require' au lieu de' use'? Pourquoi n'avez-vous * pas * d'utiliser «strict» et «utilisez des avertissements» en haut de votre programme? Ce sont * essentiels * pour tout programme Perl. – Borodin
Je vois ce que vous voulez dire, mais j'ai simplement fait un rapide copier-coller depuis le CPAN et voici comment l'exemple d'utilisation de LWP: Useragent a l'air [là] (http://search.cpan.org/~ether/libwww-perl-6.15 /lib/LWP/UserAgent.pm). –