gpt4 book ai didi

perl - LWP::UserAgent 忽略 SSL_VERIFY_PEER

转载 作者:行者123 更新时间:2023-12-04 10:31:34 24 4
gpt4 key购买 nike

我在 RHEL 7 上使用 Perl 5.16.3,我有一个相当通用的请求:

#!/usr/bin/env perl
use strict;
use warnings;

use LWP::UserAgent() ;
use URI::Escape ;
use IO::Socket::SSL ;

my $PhoneNo = "<Some phone number>" ;
my $SomeMsg = "Some message" ;
my $BaseURL = 'https://api.clickatell.com/http/sendmsg?user=someuser&password=somepassword' ;
my $EncSomeMsg = uri_escape($SomeMsg) ;

my $SendURL = sprintf("%s&to=%s&text=%s",$BaseURL,$PhoneNo,$EncSomeMsg) ;

my $ua = LWP::UserAgent->new(
timeout => 10,
ssl_opts => {
verify_hostname => 1,
SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_PEER,
},
) ;

#$ua->ssl_opts(SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_PEER) ; # Causes error 'Can't locate object method "ssl_opts" via package "LWP::UserAgent"'

my $contents = $ua->get($SendURL) ;

printf("Returned: %s\n",$contents) ;

但是它仍然返回:

不推荐对客户端使用 SSL_VERIFY_NONE 的 SSL_verify_mode 的默认值!请将 SSL_verify_mode 设置为 SSL_VERIFY_PEER,可能使用 SSL_ca_file|SSL_ca_path 进行验证。如果您真的不想验证证书并保持连接对中间人攻击开放,请在您的应用程序中将 SSL_verify_mode 显式设置为 SSL_VERIFY_NONE。

这些是模块的版本:
  • LWP::UserAgent: 2.033
  • LWP::Protocol::https: (没有返回版本)
  • IO::Socket::SSL: 1.94

  • 为什么它忽略了我验证对等方的请求?

    最佳答案

    根据LWP::UserAgent change-log ssl_opts已在版本 6.00 中添加.您使用的是旧/低版本 2.* .

    LWP::UserAgent change-log

    6.00 2011-03-08
    - […] The LWP::UserAgent got new ssl_opts method to control this as well.

    关于perl - LWP::UserAgent 忽略 SSL_VERIFY_PEER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60399083/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com