【问题标题】:Perl HTTPS 443 errorPerl HTTPS 443 错误
【发布时间】:2017-03-09 02:06:24
【问题描述】:

我的 Perl 脚本可以在 PC 上运行。但是,当我在 Windows Server 2003 服务器上运行它时,它给了我:

https 443 错误(500 无法连接到“网站”:443)。

我的脚本使用LWP:UserAgent 从 HTTPS 地址下载文件。这是我到目前为止所做的:

  1. 我测试了连接该服务器上的其他 HTTPS 地址,并且它们工作正常。
  2. 我尝试设置$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0,但没有成功。
  3. 我尝试了Mozilla::CACACertOrg::CA,但没有成功;我也尝试设置$ENV{HTTPS_CA_FILE}= "path to the downloaded CA file",但它不起作用。

这是我的部分原始脚本:

sub retrieveHTTPS {
    my ($url, $encrypted_file) = @_;
    use LWP::UserAgent;
    my $browser = LWP::UserAgent->new;
    my $response =
    $browser->get($url, ':content_file' => $encrypted_file);
    die "Error at $url\n ", $response->status_line, "\n Aborting"
            unless $response->is_success;}

我该如何解决这个问题?

【问题讨论】:

  • 你的意思是403吗?您的错误日志中有什么内容?
  • 错误信息是 500 can't connect to "...": 443
  • 请添加完成错误信息。
  • 另外,将use LWP::UserAgent 放在文件顶部,这样您就可以将所有依赖项放在一个位置。 used 模块在编译时加载。这意味着,仅在调用 sub 时不会加载它。它总是在文件第一次编译时被加载。

标签: perl https


【解决方案1】:

来自 LWP::UserAgent 文档:

libwww-perl 核心不再为 SSL 捆绑协议插件。你 需要单独安装 LWP::Protocol::https 以启用支持 用于处理 https-URL。

很有可能您的 Windows Server 2003 服务器上没有安装必要的模块来支持 HTTPS。

尝试安装 LWP::Protocol::https。

use LWP::Protocol::https; 添加到您的脚本中以明确此依赖关系也是一个好主意。

【讨论】:

  • 其实我已经做到了,但还是不行……还是谢谢你。
  • 好的。 LWP::Protocol::https 然后使用 Net:HTTPS,后者又使用 IO::Socket::SSL 或 Net::SSL。还值得检查其中安装了哪些以及它们所在的版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-06
  • 1970-01-01
  • 2018-08-30
  • 2017-01-28
  • 1970-01-01
  • 1970-01-01
  • 2015-02-01
相关资源
最近更新 更多