当前位置: 首页 > 知识库问答 >
问题:

HTTPS代理和LWP::UserAgent

郤瀚
2023-03-14

我已经阅读了一些网站上的一些线程,但仍然无法使这一工作。

#!/usr/bin/perl

use strict;
use warnings;
use Net::SSL (); # From Crypt-SSLeay

BEGIN {
  $Net::HTTPS::HTTPS_SSL_SOCKET_CLASS = "Net::SSL"; # Force use of Net::SSL
  $ENV{HTTPS_PROXY} = 'https://192.168.1.11:80';
#  $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
  $ENV{HTTPS_DEBUG} = 1;  #Add debug output
}

use LWP::UserAgent;
my $ua = LWP::UserAgent->new();
my $req = HTTP::Request->new('GET','https://github.com/');
my $response = $ua->request($req);

print "--\n";
print "$_\n" for grep { $_ =~ /SSL/ } keys %INC;
print "--\n";

if ($response->is_success) {
     print $response->decoded_content;  # or whatever
     exit(0);
}
else {
 print "\nFail:\n";
     print $response->status_line ."\n";
     exit(1);
}
--
Crypt/SSLeay.pm
Crypt/SSLeay/X509.pm
Net/SSL.pm
--

Fail:
500 Can't connect to github.com:443 (Crypt-SSLeay can't verify hostnames)
SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
SSL_connect:before/connect initialization
SSL_connect:SSLv3 write client hello A
SSL_connect:failed in SSLv3 read server hello A
SSL_connect:before/connect initialization
SSL_connect:SSLv2 write client hello A
SSL_connect:failed in SSLv2 read server hello A
--
Crypt/SSLeay.pm
Crypt/SSLeay/X509.pm
Net/SSL.pm
Crypt/SSLeay/CTX.pm
Crypt/SSLeay/MainContext.pm
--

Fail:
500 SSL negotiation failed: 

如果有人能在这里提供一些指导,我将不胜感激!

共有1个答案

赵英范
2023-03-14

我刚刚将LWP::Protocol::Connect模块上传到CPAN。此模块将缺少的HTTP/Connect方法支持添加到LWP中。

  use LWP::UserAgent;

  $ua = LWP::UserAgent->new(); 
  $ua->proxy('https', 'connect://proxyhost.domain:3128/');

  $ua->get('https://www.somesslsite.com');

使用此模块,您可以使用LWP>=6.00的常规IO::Socket::SSL实现。

 类似资料:
  • 是否可以在 React Native 应用程序中使用 HTTPS Agent? 我现在的代码是: 但是显示以下错误: ExceptionsManager.js:76错误:InternalError Metro遇到错误:在尝试从文件解析模块时,成功找到包。但是,此包本身指定了无法解析的模块字段(。事实上,这些文件都不存在: /mobile/node_modules/https/index.js(.n

  • 我需要代理请求从localhost到HTTPS后端。我使用doc的代码: 但它返回一个错误: 尝试将请求/env/api/my/url/从localhost:4200代理到时发生[HPM]错误https://my-domain (电子版)(https://nodejs.org/api/errors.html#errors_common_system_errors)

  • 我已经编写了一个充当代理服务器的控制台应用程序。现在我也喜欢实现SSL。不喜欢解密任何流量。就像普通的https代理一样。我不知道我应该如何继续。 我应该直接将所有内容写入sslStream吗?浏览器连接如何。我是否也需要包装流,还是可以将所有内容直接写入代理流?我应该使用AuthenticateAsServer并以某种方式从AuthenticateAsServer传递证书吗? IE向我的代理发出

  • 我已经尝试用不同的方式和指向不同的HTTPS站点来编写上面的内容;它在HTTP站点上工作,我已经安装了“Net::SSL”(“Crypt::SSleay”是最新的。(0.72)),没有防火墙,重新安装了最新的XAMPP服务器,安装了最新的草莓Perl来代替XAMPP服务器,只是没有想法了,欢迎任何建议。 编辑;shebang行实际上指向Strawberry Perl便携,我用它替换了XAMPP P

  • 我正在运行一个旧的Debian服务器,该服务器每天通过Perl脚本获取一个网页。从昨天开始,脚本失败,出现“500 SSL协商失败”错误。 就像我说的,它是一个运行所有东西的旧版本的旧服务器: Perl:5.8.8 OpenSSL:0.9.8C LWP:5.805 crypt::ssleay:0.57 测试1:我尝试的第一件事是将OpenSSL更新到1.0.2D。这没有帮助,我仍然得到了“SSL协

  • 问题内容: 最近,我一直在扭曲使用HTTP代理。经过反复试验,我想我终于可以正常工作了。我想知道的是,如果可能的话,如何扩展此代理以使其也能够处理HTTPS页面?到目前为止,这是我得到的: 如该代码所示,为了示例,我现在仅打印通过连接进行的操作。是否可以使用相同的类来处理HTTPS?如果没有,我应该如何实施这样的事情? 问题答案: 如果要通过HTTP代理连接到HTTPS网站,则需要使用HTTP动词